我一直在将应用程序转换为Rails 3.1(现在转到3.2)并观看了Railscast on the asset pipeline。我将所有第三方jquery插件文件移动到/ vendor / assets / javascripts /目录。在我的/app/assets/javascripts/application.js中,我有以下内容:
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require_self
我意识到require_tree .
调用仅加载/ app / assets / javascripts /目录的树。 (这是正确的吗?)包含所有“供应商”javascripts的最佳方式是什么? (我现在并不担心订购。)当然,我可以在/app/assets/javascripts/application.js中逐行索取。我的另一个想法是使用以下内容创建/vendor/assets/javascripts/vendor_javascripts.js:
//= require_tree .
然后在/app/assets/javascripts/application.js中添加以下内容:
//= require vendor_javascripts
但这似乎有点笨拙。有没有更好的方法来自动包含所有“供应商”(和/或“lib”)javascripts?
PS。我看到this about index.js files,但我最终会得到多个名为index.js的文件,对吗?哦,我尝试重新启动我的服务器。
答案 0 :(得分:73)
您可以在app/assets/javascripts/application.js
文件中添加这样的内容,以包含所有供应商的javascripts:
//= require_tree ../../../vendor/assets/javascripts/.
答案 1 :(得分:21)
我知道这是一个老问题,但你可以在vender / assets / javascript文件夹中创建一个清单文件:
#vendor/assets/javascripts/my_jquery_plugins/manifest.js
# require_tree .
在你的application.js中:
//= require my_jquery_plugins/manifest.js
如果您使用的是Rails 4,请将manifest.js
命名为index.js
,并将application.js
命名为<{1}}:
//= require my_jquery_plugins
它比所描述的相对路径更少hacky。