我在我的 lib 文件夹中下载了一个插件 ( http://www.datatables.net/ ) 的 javascript 文件。具体来说,在 app/lib/assets/javascripts/datatables/datatables.js (这是我重命名的文件 jquery.dataTables.min.js ,因为我认为它可能有问题,因为我试图要求整个 jquery/数据表.min)。
我的 app/assets/javascripts/application.js 文件中有以下内容:
//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require lib/assets/javascripts/datatables
//= require_tree .
我也试过了
//= require datatables
而不是 lib/assets/javascripts/datatables
我收到一个错误,提示 Sprockets 在 c:/Sites/my-app-name/app/assets/javascripts/application.js 中找不到文件数据表它似乎没有在 lib/assets 中查找。当我将它放在 /app/assets/javascripts 目录中尝试时,该插件起作用了,但我知道这不是它真正应该去的地方。我还在供应商目录中尝试过,但没有成功,并在服务器上通知我,对于 Rails 4.0,它需要位于 lib 目录中。
我研究并尝试过的修复失败:
重新启动服务器(作为修复它的第一次尝试,并且在我尝试过每次修复之后。)
包含
config.autoload_paths += Dir["#{config.root}/lib/**/"] in /app/config/application.rb
将文件从 lib/assets/javascripts/datatables.js 移动到 lib/assets/javascripts/datatables/datatables.js
在 lib/assets/javascripts/datatables/ 中创建一个 index.js 文件,内容如下:
//= 需要数据表 //= require_tree 。
在 app/javascripts/application.js 中只需要文件名,或者需要路径。我试过了
//= 需要数据表
//= 需要 lib/assets/javascripts/datatables
//= 需要 /lib/assets/javascripts/datatables/datatables
当我输入 /lib/assets/javascripts/datatables/datatables 时,我没有收到错误消息,并且我的页面已加载。但是,该插件无法正常工作,该网站看起来就像没有插件一样。这是唯一的事情(除了将 .js 插件文件放在 app/assets/javascripts/ 目录中,它完全改变了错误消息。否则它是相同的错误消息。
有没有我没有想到我应该尝试的解决方案?lib是合适的地方吗?
感谢您的任何帮助。