当我被这条线绊倒时,我正在阅读有关Rails 4和Asset Pipeline的文档:
如果您要从Rails 3升级,请考虑lib / assets或vendor / assets下的资产可通过应用程序清单包含但不再是预编译数组的一部分
http://edgeguides.rubyonrails.org/asset_pipeline.html#asset-organization
通过应用程序清单可以包含哪些内容并成为预编译数组的一部分有什么区别?这是否意味着,如果我有一个javascript文件lib/vendor/cool_plugin.js
,即使我//require cool_plugin
中有application.js
,我也会在生产时获得404?
答案 0 :(得分:3)
来自http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html:
在Rails 4.0中,预编译资产不再自动复制 来自供应商/资产和lib / assets的非JS / CSS资产。 Rails应用程序 和引擎开发人员应将这些资产放在app / assets或 配置config.assets.precompile。
因此我认为您需要明确引用您的供应商资产,以便在生产预编译期间获取它们:
# production.rb
config.assets.precompile += %w( cool_plugin.js )