段塞尺寸太大的原因有很多。最常见的3个是:
- 额外/未使用的宝石
- Tmp 缓存
- 通过 .slugignore 获得的大型资产
我花了大约 3 个小时来研究为什么我的蛞蝓尺寸太大的所有可能性。
我需要的gem文件中的所有gem,所以它已经出来了。我尝试通过https://devcenter.heroku.com/articles/slug-compiler使用 .slugignore ,这有点帮助。
对我来说,最终的解决方案是忽略其他环境中的资产。
为此,请打开 application.rb 并添加:
config.assets.configure do |env|
if Rails.env.development? || Rails.env.test?
env.cache = ActiveSupport::Cache.lookup_store(:memory_store)
这将忽略从其他环境中提取的任何额外缓存。如果要部署到 heroku,在预编译之前,运行:
heroku config:set BUNDLE_WITHOUT="development:test"
. 之后,运行您的常规git push heroku master
.
如果您回顾日志,您会注意到它直接跳过了开发和测试。这将我的 slug 大小减少了 50mb 以上。我希望这对某人有帮助!