我们的Heroku托管的Rails 4公共资产目录(~/public/assets
)受到多个编译资产版本的污染,包括我们很久以前删除的版本。我无法弄清楚如何摆脱它们 - 它让我疯狂。尝试:
heroku run rake assets:clean
heroku run rake assets:clobber
~/public/assets/
目录,但是当我再次使用另一个bash会话登录时,它们仍然存在!答案 0 :(得分:2)
好的,伙计们。我现在明白了这个问题,以防它帮助其他人:
您无法按照预期的方式通过heroku run bash
删除文件。这是设计的。看看这里:https://devcenter.heroku.com/articles/how-heroku-works#dyno-manager
重要的是要注意:
这[[{1}}]会启动一个新的dyno
...
对一个dyno上的文件系统的更改不会传播到其他dynos,并且不会在部署和dyno重新启动时保持不变。
好的,这解释了。那么,如果您无法摆脱旧资产并heroku run bash
无法解决问题该怎么办?好吧,也许某些东西隐藏在缓存中。
这为我解决了这个问题:
希望这会有所帮助;)
答案 1 :(得分:0)
由于heroku正在生产中预编译资产文件,因此heroku有一个短暂的文件系统,所以你无能为力。
根据Heroku
每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,所写的任何文件都将被丢弃。
因此,您在heroku的文件系统上所做的每一项更改都会被删除。