Rails 4中'config.assets.prefix'的意外行为

时间:2014-01-23 11:49:03

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

我在config/environments/development.rb中设置了以下配置变量:

config.assets.prefix = "/dev-assets"

在Rails 3中,这意味着在开发过程中,我的应用程序会在public/dev-assets而不是public/assets中查找资产,以避免加载可能存在的预编译资产的风险。

但是在Rails 4中,设置此参数并运行rake assets:precompile现在会将预编译资产添加到public/dev-assets

似乎这个前缀用于Rails放置预编译资产和rails查找资产的位置。这意味着Rails将始终从放置预编译资产的同一位置提取资产,这意味着可能过时的预编译资产会掩盖最新资产。

那么如何在Rails 4中实现同样的功能呢?如何将我的资产预编译到一个目录以外的其他目录?

来自rake assets:precompile的控制台输出:

[2014-01-23T11:48:35.766582 #4234] INFO -- : Writing /path/to/app/public/dev-assets/application-1b403217ee27653d8d1299aeb242462b.js I, [2014-01-23T11:48:35.819090 #4234] INFO -- : Writing /path/to/app/public/dev-assets/application-8e258453df56d80e1a8b9b8a8e6f8db4.css

1 个答案:

答案 0 :(得分:2)

我本应该使用RAILS_ENV=production rake assets:precompile,以便资产在生产环境中预编译(默认情况下config.assets.prefix仍为默认值)到本地public/assets