Heroku上部署的Rails 6不会更新样式表

时间:2019-09-20 22:23:54

标签: ruby-on-rails heroku asset-pipeline ruby-on-rails-6

我构建了一个Rails 6应用程序并将其部署到Heroku。但是我对样式表所做的任何更改都不会反映出来。在这方面,所有Heroku文档和SO问题/答案似乎都不再与当前的Rails设置相关。在推送到heroku之前,我可以预先编译资产,但我不希望这样做。实际上,我确实找到了一个“解决方案”,但感觉比真正的解决方案更像是黑客。如果我打开config / initializers / assets.rb并更改以下语句:

Rails.application.config.assets.version = '1.0'

Rails.application.config.assets.version = '1.1'

然后它将更新资产。但这意味着,如果我尝试网站的外观,那么我将一直在更改版本。我的意思是,如果那是他们应该使用的方式,我将忍受它,但这似乎并不正确。有谁知道让Heroku在每次推送时对其进行更新的方法?

1 个答案:

答案 0 :(得分:0)

您必须从heroku端(即在Heroku上的服务器中)编译资产,因此在将代码推送到Heroku之后,运行:

$ heroku run rake assets:precompile
# If above doesn't work
$ heroku run RAILS_ENV=production rake assets:precompile

此外,将public/assets(或任何预编译到的文件夹)文件夹添加到.gitignore文件中也是一种好习惯,因此,如果您在本地环境中预编译资产,则不会造成麻烦当您推送到Heroku时,您的生产环境。但是,每次更改一些CSS并推送到heroku时,都需要使用上述命令在Heroku末端预编译资产。