强制Heroku重新编译所有资产

问题描述 投票:14回答:4

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

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

ruby-on-rails heroku ruby-on-rails-4
4个回答
21
投票

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


4
投票

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

heroku plugins:install heroku-repo

然后

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

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

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

$ heroku repo:rebuild -a appname

0
投票

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

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

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


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.