Rails资产pipe道:包含所有/ vendor / assets / javascripts /的标准方式?

我一直在将一个应用程序转换到Rails 3.1(现在到3.2),并观看了资产pipe道上的Railscast 。 我把我所有的第三方jquery插件文件移动到/ vendor / assets / javascripts /目录。 在我的/app/assets/javascripts/application.js我有以下内容:

//= require jquery //= require jquery_ujs //= require_tree . //= require_self 

我意识到了require_tree . 调用只加载/ app / assets / javascripts /目录的树。 (是否正确?)包含所有 “供应商”JavaScripts的最佳方法是什么? (我并不担心在这一点上sorting)。当然,我可以在/app/assets/javascripts/application.js中逐行要求它们。 我的另一个想法是创build/vendor/assets/javascripts/vendor_javascripts.js与以下内容:

 //= require_tree . 

然后在/app/assets/javascripts/application.js中添加以下内容:

 //= require vendor_javascripts 

这似乎有点笨重,但。 有没有更好的方法来自动包含所有的“供应商”(和/或“库”)的JavaScript?

PS。 我看到这个关于index.js文件 ,但我可能会结束多个文件名为index.js,对不对? 哦,我试着重新启动我的服务器。

你可以在你的app/assets/javascripts/application.js文件中添加这样的东西来包含所有供应商的javascripts:

 //= require_tree ../../../vendor/assets/javascripts/. 

我知道这是一个老问题,但您可以在供应商/资产/ JavaScript文件夹中创build清单文件:

  #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

 //= require my_jquery_plugins 

这比描述的相对path不那么疯狂。