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" %>的内容。