我查看了很多关于此主题的帖子,但似乎无法找到解决我问题的组合。对不起,如果这是重复。
问题是我不确定为达到这一点所采取的步骤顺序。
我在Heroku的开发和生产中都有一个功能完善的Rails应用程序。但是,在Heroku部署中,我在资产预编译期间收到错误。因此,我更改了设置,因此Heroku会假设“rake asset:precompile”在部署之前已在本地运行。摆脱了部署错误,没问题。有点烦人,我现在必须在本地预编译并将文件包含在我的Git存储库中,但我喜欢无错误部署。
无论如何,现在正在开发中,对CSS的更改没有得到实时反映。我必须运行'rake assets:precomplile'。那不好。发现一个删除公共/资产的帖子会解决这个问题,它确实如此。
现在Javascript / Coffeescript的变化不会在运行中得到反映。
对于长篇描述的描述感到抱歉。
理想情况下,我会进入一个在开发过程中即时反映变化的世界,我不需要在Heroku部署之前运行'rake assets:precomplile',并且我不会在执行期间遇到错误在Heroku上预编译。
不太理想,我只是回到我的初始行为(Heroku在部署时抱怨,但一切仍然正常)。
答案 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