Rails 资产管道:包含所有 /vendor/assets/javascripts/ 的标准方式?
Posted
技术标签:
【中文标题】Rails 资产管道:包含所有 /vendor/assets/javascripts/ 的标准方式?【英文标题】:Rails asset pipeline: Standard way for including all /vendor/assets/javascripts/? 【发布时间】:2012-02-18 21:06:45 【问题描述】:我一直在将应用程序转换到 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/ 目录的树。 (对吗?)包含 all“供应商”javascript 的最佳方式是什么? (此时我不担心订购。)当然,我可以在 /app/assets/javascripts/application.js 中逐行要求它们。我的另一个想法是使用以下内容创建 /vendor/assets/javascripts/vendor_javascripts.js:
//= require_tree .
然后在 /app/assets/javascripts/application.js 添加以下内容:
//= require vendor_javascripts
不过,这似乎有点笨拙。有没有更好的方法来自动包含所有“供应商”(和/或“lib”)javascript?
PS。我看到了this about index.js files,但我最终可能会得到多个名为 index.js 的文件,对吧?哦,我尝试重新启动我的服务器。
【问题讨论】:
【参考方案1】:您可以在 app/assets/javascripts/application.js
文件中添加类似内容以包含所有供应商 javascript:
//= require_tree ../../../vendor/assets/javascripts/.
【讨论】:
忘记了整个相对路径的事情 :) 谢谢,效果很好! 实际上,我认为 OP 建议的方法不那么笨重 我建议在app/assets
下添加一个vendor
文件夹。 vendor/assets
似乎没有必要。
我倾向于同意,但 Rails 的新应用默认布局为您提供 vendor/assets
,所以我认为很多人会尝试实现这一点:/【参考方案2】:
我知道这是一个老问题,但您可以在 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
中:
//= require my_jquery_plugins
它比描述的相对路径更简单。
【讨论】:
以上是关于Rails 资产管道:包含所有 /vendor/assets/javascripts/ 的标准方式?的主要内容,如果未能解决你的问题,请参考以下文章