Rails 4 assets.precompile
这是一个常见的问题,但没有一个解决方案解决了我的问题,所以在这里:
我将ace.js添加到我的rails4应用程序中,所以我做的是
- Added vendor/assets/ace/ace.js - Created vendor/assets/ace/index.js , with content //= require ace - Added the following to my production.rb config.assets.precompile += %w( index.js ) config.assets.paths << Rails.root.join("vendor", "assets", "ace")
所以在我的布局文件中我有:
它在dev上运行得很好,但是当我运行时:
RAILS_ENV=production bundle exec rake assets:precompile
它不会创建ace文件的摘要版本。
我错过了什么吗?
通过添加以下内容解决:
config.assets.precompile += %w( index.js )
to config/application.rb
。 (不是config/environments/production.rb
)
在Rails 4.0 beta1中测试过。
如果要将ace
目录添加为资产,则应将js
文件放在vendor/assets/ace/javascripts
目录下(您应该创建)。
通常你不需要config.assets.precompile += %w( index.js )
,Sprockets会很好地管理它。 如果只有一个js文件要从vendors/assets/ace
目录添加,那么你不需要index.js。 如果您在vendor/assets/ace/javascripts/your_vendor_js_library
下有很多子目录和文件,那么index.js
将是正确的。 最后一点:你不需要<%= javascript_include_tag "ace" %>
,它复制了<%= javascript_include_tag "application" %>
的内容。