打破了我的资产管道

时间:2013-01-01 13:53:42

标签: ruby-on-rails-3 asset-pipeline assets

我查看了很多关于此主题的帖子,但似乎无法找到解决我问题的组合。对不起,如果这是重复。

问题是我不确定为达到这一点所采取的步骤顺序。

我在Heroku的开发和生产中都有一个功能完善的Rails应用程序。但是,在Heroku部署中,我在资产预编译期间收到错误。因此,我更改了设置,因此Heroku会假设“rake asset:precompile”在部署之前已在本地运行。摆脱了部署错误,没问题。有点烦人,我现在必须在本地预编译并将文件包含在我的Git存储库中,但我喜欢无错误部署。

无论如何,现在正在开发中,对CSS的更改没有得到实时反映。我必须运行'rake assets:precomplile'。那不好。发现一个删除公共/资产的帖子会解决这个问题,它确实如此。

现在Javascript / Coffeescript的变化不会在运行中得到反映。

对于长篇描述的描述感到抱歉。

理想情况下,我会进入一个在开发过程中即时反映变化的世界,我不需要在Heroku部署之前运行'rake assets:precomplile',并且我不会在执行期间遇到错误在Heroku上预编译。

不太理想,我只是回到我的初始行为(Heroku在部署时抱怨,但一切仍然正常)。

1 个答案:

答案 0 :(得分:0)

如果您想要动态预编译资产(例如config/production.erb

config.assets.compile = true
config.assets.precompile << '*.js'

然后查看config/application.rb,您可以选择是否要在部署到生产之前进行预编译

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end