减少Heroku编译的Slug大小

10

我刚刚将我的应用程序更新到了bamboo-ree-1.8.7堆栈下的rails v2.3.6版本,编译的slug大小增加到了40.5Mb!在上一次git push之前,slug大小约为20Mb,并且使用的是rails v2.3.5。

这是因为我安装了两个不同版本的rails吗?也许我忽略了什么,但我没有添加任何特殊的代码/文件到我的应用程序中来增加约20Mb的slug大小。

你能指点我如何减小slug的大小吗?

非常感谢您提前的帮助。

3个回答

18

有一个方法可以帮助你,就是在项目的根目录下添加一个.slugignore文件,告诉Heroku不要将某些文件或目录编译到slug中。我的文件看起来像这样:

*.psd
*.pdf
test
spec
features
doc
public

在这里加入 public 条目是因为我从亚马逊的S3服务中提供了所有静态文件; 如果你没有使用外部内容传递系统,只需省略该行。


1
是的,我知道我的包括public/images目录+样式表+ JavaScript,因为我将它们保存在S3上。我已经升级到Rails 2.3.8(之前使用的是2.3.6),现在slug大小比以前减小了很多(约20Mb)。我认为这是某个gem依赖问题。无论如何,感谢您的回复。 - Estanislau Trepat
1
将脚本目录添加到.slugignore文件中是否安全? - fphilipe
1
那是个好问题,菲利普,你弄清楚这样做是否安全了吗? - digitalWestie
2
我尝试了一下,应用程序运行良好,但是您无法在Cedar上使用slugignore中的脚本启动控制台。 - swrobel

2

如果你正在使用cedar堆栈上的less/bootstrap,并且想要减少slug大小,那么你可以通过预编译和脚本化你的预编译和推送来实现,这样就不会包含less gem和其依赖项,具体请参见这里


你写了一篇非常好且相关的博客文章,但我认为你用URL缩短器让它变得廉价了。 - danneu

1

您还可以排除在生产环境中未使用的任何 gem,以减少一些负担。确保您的 Gemfile 根据环境拆分 gem,然后排除那些不需要的环境。

heroku config:add BUNDLE_WITHOUT="development:test:staging"

这段内容摘自Heroku博客,链接在这里


目前这仅适用于未在Caledon Cedar堆栈上运行的应用程序。 - Jonas Bylov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接