【问题标题】:Rails 4 Asset Pipeline With Lib and Vendor Folders带有 Lib 和供应商文件夹的 Rails 4 资产管道
【发布时间】:2014-07-01 17:49:15
【问题描述】:

当我被这行绊倒时,我正在阅读有关 Rails 4 和资产管道的文档:

如果您从 Rails 3 升级,请注意 lib/assets 或 vendor/assets 下的资产可通过应用程序清单包含但不再是预编译数组的一部分

http://edgeguides.rubyonrails.org/asset_pipeline.html#asset-organization

通过应用程序清单可用于包含与成为预编译数组的一部分有什么区别?这是否意味着如果我有一个javascript文件lib/vendor/cool_plugin.js,即使我在application.js中有//require cool_plugin,我在生产时也会得到404?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 asset-pipeline precompile


    【解决方案1】:

    来自http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html:

    在 Rails 4.0 中,预编译资产不再自动复制 来自 vendor/assets 和 lib/assets 的非 JS/CSS 资产。导轨应用 引擎开发者应该将这些资产放在 app/assets 或 配置 config.assets.precompile。

    所以我认为您需要明确引用您的供应商资产,以便在生产预编译期间获取它们:

    # production.rb
    config.assets.precompile += %w( cool_plugin.js )
    

    【讨论】:

    • 我将非 JS/CSS 解释为图像。我会阅读您带来的报价,这意味着 cool_plugin.js 将被自动处理,因为它是一个 JS 文件。我是不是看错了?
    • 我刚刚用一个放在/lib/assets/stylesheets/test.css.scss 中的测试文件对此进行了测试,我必须将它显式添加到config.assets.precompile(如test.css)才能在生产中工作。 application.css 中的 require test 还不够。
    • 如果您因为供应商/资产中有未预编译的图像而来到这里,请参阅此线程:stackoverflow.com/questions/14194752/…
    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 2013-10-12
    • 2012-12-21
    • 2016-08-17
    • 1970-01-01
    • 2023-04-02
    • 2014-11-16
    • 1970-01-01
    相关资源
    最近更新 更多