减少 Heroku 编译的 Slug 大小
Posted
技术标签:
【中文标题】减少 Heroku 编译的 Slug 大小【英文标题】:Reduce Heroku Compiled Slug Size 【发布时间】:2011-02-24 02:10:05 【问题描述】:我刚刚将我的应用程序上的 rails 更新到 v2.3.6,并使用了 Bamboo-ree-1.8.7 堆栈,编译后的 slug 大小已增长到 40.5Mb!在最后一次 git push 之前,slug 大小约为 20Mb,并且使用的是 rails v2.3.5。
是不是因为我的 slug 安装了两个 rails 版本?可能我遗漏了一些东西,但我没有在我的应用程序中添加任何特殊代码/文件以将 slug 大小增加 ~20Mb。
你能告诉我如何减少蛞蝓的大小吗?
任何帮助将不胜感激。
非常感谢您。
【问题讨论】:
【参考方案1】:有一个有用的方法是将.slugignore
文件添加到项目的根目录中,以告诉 Heroku 不要将某些文件或目录编译到 slug 中。我的看起来像这样:
*.psd
*.pdf
test
spec
features
doc
public
public
条目在那里,因为我提供来自 Amazon S3 服务的所有静态文件;如果您不使用外部内容交付系统,请不要使用该行。
【讨论】:
是的,我知道我的包括 public/images 目录 + 样式表 + javascripts,因为我将它们保存在 S3 上。我已经升级到 Rails 2.3.8(正在使用 2.3.6),并且 slug 的大小已经大大减少到以前的大小(~20Mb)。我认为这是一些宝石依赖问题。无论如何感谢您的回复。 将脚本目录添加到 .slugignore 是否安全? 这是一个很好的问题 Philipe,您知道这样做是否安全吗? 我试过了,应用程序运行良好,但您无法使用 slugignore 中的脚本在 Cedar 上启动控制台。【参考方案2】:如果您在 cedar 堆栈上使用 less/bootstrap,则可以通过预编译和脚本化预编译和推送来减少 slug 大小,以便不包含 less gem 和依赖项,请参阅here。
【讨论】:
你写了一篇非常好的和相关的博客文章,但我认为你用 URL 缩短器降低了它的成本。【参考方案3】:您还可以排除任何未在生产环境中使用的 gem,以稍微精简一下。确保您的 Gemfile 根据环境拆分 gem,然后排除那些不需要的环境。
heroku config:add BUNDLE_WITHOUT="development:test:staging"
取自 Heroku 博客 here
【讨论】:
目前这仅适用于不在 Caledon Cedar 堆栈上运行的应用程序。以上是关于减少 Heroku 编译的 Slug 大小的主要内容,如果未能解决你的问题,请参考以下文章