Ruby on rails Heroku:编译的Slug大小太大

Ruby on rails Heroku:编译的Slug大小太大,ruby-on-rails,heroku,Ruby On Rails,Heroku,我已经花了半天时间试着调试一个Heroku错误,由于slug编译错误,我无法将代码推送到我的暂存服务器: Compiled slug size: 320.5MB is too large (max is 300MB). 我已将所有资产移动到AWS3,并创建了一个.slugignore文件,其中包含以下信息: *.psd *.pdf test spec features doc public 我还可以使用哪些其他策略?最奇怪的是,据我所知,代码与生产服务器相同,推送到生产服务器时没有任何错误。

我已经花了半天时间试着调试一个Heroku错误,由于slug编译错误,我无法将代码推送到我的暂存服务器:

Compiled slug size: 320.5MB is too large (max is 300MB).
我已将所有资产移动到AWS3,并创建了一个.slugignore文件,其中包含以下信息:

*.psd
*.pdf
test
spec
features
doc
public

我还可以使用哪些其他策略?最奇怪的是,据我所知,代码与生产服务器相同,推送到生产服务器时没有任何错误。

在添加.slugignore文件之前,可能有一些大文件添加到git repo中,现在它们在slug缓存中或作为git引用。具有修复这些问题的命令:

$ heroku repo:gc -a appname
$ heroku repo:gc -a appname
将在您的回购协议上运行git gc--aggressive

$ heroku repo:purge_cache -a appname
$ heroku repo:purge_cache -a appname
这将删除生成缓存,然后您可能应该运行以重新生成应用程序

$ heroku repo:rebuild -a appname

我可以通过运行
git-gc

来解决这个问题,这对我很有效

将在您的回购协议上运行git gc--aggressive

$ heroku repo:purge_cache -a appname
$ heroku repo:purge_cache -a appname
然后我手动将代码推给heroku

$ git push heroku-prod master

在我的例子中,我忘记添加构建包,所以我的slug达到了
624.4MB

我所做的是添加以下内容:

再次删除后,我的slug大小为
393.9MB

这对我来说很有效:

$heroku repo:gc-a appname

$heroku repo:purge_cache-a appname


$heroku repo:reset-生产服务器是否也在heroku上?heroku实例的最大slug大小是一个常量(300 MB)。除了进行git推送之外,是否还做了一些准备生产构建的工作?@RobertMoskal我不知道您是否尝试过使用该插件?purge_cache和gc命令可能有助于调整段塞大小。您的gemfile中是否有许多gem仅用于暂存?就我的一个应用而言,即使只是几个额外的宝石(与生产相比),也可能会使编译后的slug大小超出限制。另一个需要@Lukas Eklund的回答。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。@NickM我确实遵循了与先前回答者不同的路线。为了反映这一点,我改变了帖子的措辞。谢谢你的提醒。回购协议:重建似乎已经不复存在了但“重置”仍然存在