我更新了两张图片,现在Heroku正确地提供了一张图片,但另一张图片仍然是旧图像。部署日志的输出显示两个图像都使用新哈希进行预编译,但用于检索其中一个的哈希(来自application.css
文件)仍然是旧哈希,并且它以某种方式抓取旧图像。
我想强制Heroku重新编译每个资产并重新启动服务器(基本上是一个全新的部署)。目前似乎智能地#34;只预编译它认为是新的资产。我尝试了rake assets:clobber
和rake assets:precompile
,但它没有改变任何东西 - 仍然使用旧的哈希来获取一个旧图像版本,但成功获得另一个。还有其他选择吗?
答案 0 :(得分:21)
手动使资产过期 - 在config.assets.version = 1.0
中将1.1
更改为config/production.rb
。但仍然不确定发生了什么。
答案 1 :(得分: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
答案 2 :(得分:0)
总计,但做一个小改动并重新部署。
您必须实际重新部署,因为在资产编译发生并且编译了slug时。只需使用heroku restart
重新启动服务器,更改配置变量,或者几乎所有其他内容都不会为您构建新的slug。
我刚遇到这个问题,这至少是为我解决的问题; YMMV。
答案 3 :(得分:-1)
这样的事情可能会发生 - 为什么不尝试使用heroku run rake assets:clean
和heroku run rake assets:precompile
来清理服务器上的资产