【问题标题】:Rails asset pipeline: Standard way for including all /vendor/assets/javascripts/?Rails 资产管道:包含所有 /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 的文件,对吧?哦,我尝试重新启动我的服务器。

【问题讨论】:

    标签: ruby-on-rails-3.1 asset-pipeline sprockets


    【解决方案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
    

    它比描述的相对路径更简单。

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      相关资源
      最近更新 更多