强制Heroku重新编译所有资产

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强制Heroku重新编译所有资产相关的知识,希望对你有一定的参考价值。

我更新了两个图像,现在Heroku正确地服务一个,但另一个仍然是旧图像。部署日志的输出显示两个图像都使用新哈希进行预编译,但用于检索其中一个的哈希(来自application.css文件)仍然是旧哈希,并且它以某种方式抓取旧图像。

我想强制Heroku重新编译每个资产并重新启动服务器(基本上是一个全新的部署)。目前,它似乎“智能地”只预编译它认为是新的资产。我尝试做rake assets:clobberrake assets:precompile,但它没有改变 - 仍然使用旧的哈希来获取旧图像版本,但成功获得另一个。还有其他选择吗?

答案

手动使资产到期 - 在config.assets.version = 1.01.1更改为config/production.rb。但仍然不确定发生了什么。

另一答案

您现在可以预编译资产而无需提交任何内容。

heroku plugins:install heroku-repo

然后

$ heroku repo:reset --app=appname
$ git push heroku

资料来源:https://stackoverflow.com/a/9736959/3034747

此命令用于完成相同的操作,但它已被删除,不再有效:

$ heroku repo:rebuild -a appname
另一答案

总计,但做一个小改动并重新部署。

你必须实际重新部署,因为那是在资产编译发生并编译你的slug时。只需使用heroku restart重新启动服务器,更改配置变量或其他任何东西都不会为您构建新的slug。

我刚遇到这个问题,这至少是为我解决的问题;因人而异。

另一答案

像这样的东西可能会发生 - 你为什么不尝试使用heroku run rake assets:cleanheroku run rake assets:precompile在服务器上清理资产

以上是关于强制Heroku重新编译所有资产的主要内容,如果未能解决你的问题,请参考以下文章

每次重新加载页面时,如何强制资产渲染资产?

在 Heroku 上预编译资产时如何普遍跳过数据库接触

预编译heroku后生产中缺少Rails资产

Rails 4 Heroku 资产:预编译失败

我可以在资产编译后删除 Heroku 上的应用程序/资产以减少 slug 大小吗

Heroku 部署错误;预编译资产失败(注意 devise.rb 中的行)