jjzjj

关于 jquery:在 lib 中找不到 app/assets 时工作的插件

codeneng 2023-03-28 原文

Plugin which works when in app/assets can't be found in lib

我的 lib 文件夹中有一个来自我下载的插件 (http://www.datatables.net/) 的 javascript 文件。具体来说,在 app/lib/assets/javascripts/datatables/datatables.js (这是我重命名的文件 jquery.dataTables.min.js ,因为我认为它可能有问题,因为我试图要求整个位 jquery/数据表.min).

我的 app/assets/javascripts/application.js 文件中有以下内容:

1
2
3
4
5
//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require lib/assets/javascripts/datatables
//= require_tree .

我也试过了

1
//= require datatables

而不是 lib/assets/javascripts/datatables

我收到 Sprockets 无法在 c:/Sites/my-app-name/app/assets/javascripts/application.js 中找到文件数据表的错误
它似乎没有在 lib/assets 中查找。当我将它放在 /app/assets/javascripts 目录中尝试时,该插件有效,但我知道这不是它真正应该去的地方。我还在 vendor目录中尝试过,但没有成功,并在服务器上通知我,对于 Rails 4.0,它需要位于 lib 目录中。

我研究并尝试过的修复失败:

  • 重新启动服务器(作为修复它的第一次尝试,并且在我尝试过的每个修复之后。)

  • 包括

    config.autoload_paths = 目录["#{config.root}/lib/**/"]
    在 /app/config/application.rb

  • 将文件从 lib/assets/javascripts/datatables.js 移动到 lib/assets/javascripts/datatables/datatables.js

  • 在 lib/assets/javascripts/datatables/ 中创建一个 index.js 文件,内容如下:

    //= 需要数据表
    //= 要求树 .

  • 在 app/javascripts/application.js 中只需要文件名,或者需要路径。
    我试过

    //= 需要数据表

    //= 需要 lib/assets/javascripts/datatables

    //= 需要 /lib/assets/javascripts/datatables/datatables

  • 当我输入 /lib/assets/javascripts/datatables/datatables 时,我没有收到错误消息,并且我的页面已加载。但是,该插件无法正常工作,该站点看起来就像没有该插件一样。这是唯一的事情(除了将 .js 插件文件放在 app/assets/javascripts/ 目录中,它完全改变了错误消息。否则它是相同的错误消息。

    有没有我没有想到我应该尝试的解决方案? lib 是适合它的地方吗?

    感谢您的帮助。


    1
    //= require datatables/datatables

    这就是您在 app/assets/javascripts/application.js 文件中加载文件 lib/assets/javascripts/datatables/datatables.js

    所需的全部内容

    我喜欢做的是维护一个 lib/assets/javascripts/lib.js 文件和一个 vendor/assets/javascripts/vendor.js 文件。

    在我的 app/assets/javascripts/application.js 文件中,我只有

    1
    2
    //= require vendor
    //= require lib

    datatables/ 目录确实属于vendor/assets/javascripts/,而不是您的lib/ 目录。来自 Rails 指南

    • lib/assets is for your own libraries' code that doesn't really fit into the scope of the application or those libraries which are shared across applications.
    • vendor/assets is for assets that are owned by outside entities, such as code for JavaScript plugins and CSS frameworks.

    一旦你移动了这个目录,你可以在 vendor/assets/javascripts/vendor.js 中添加

    1
    //= require datatables/datatables

    最后,尽管您似乎已经为自己解决问题做出了令人钦佩的努力,但您似乎还没有通读 Asset Pipeline 上的 Rails 指南 - 如果您还没有阅读,您应该考虑这样做。

    • 谢谢你。这让它工作了。我阅读了 Asset Pipeline 上的 Rails 指南的一部分,但由于我只是想让这部分工作,所以当他们开始谈论 CSS 时我就停下来了。我会回去阅读全文。我将它们放在库中,因为我收到警告说,当我们更新到 rails 4 并将它们放在 lib 目录中时,将不再支持 vendor目录。我现在已将它们移至 vendor。再次感谢你。
    • 你可以通过投票来"感谢"我

    有关关于 jquery:在 lib 中找不到 app/assets 时工作的插件的更多相关文章

    1. ruby - i18n Assets 管理/翻译 UI - 2

      我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

    2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

      我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

    3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

      我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

    4. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

      我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

    5. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

      关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

    6. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

      在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

    7. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

      我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

    8. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

      我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

    9. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

      当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

    10. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

      rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

    随机推荐