统计
Stack: Cedar
Framework: Ruby
Repo Size: 78.3MB
Slug Size: 237MB of 300MB
给Heroku支持的信
My Slug Size一直膨胀到237MB。我的回购大小只有75MB左右。我已经确定原因是我的资产在我的slug中被多次存储,占用了不必要的空间。
我第一次预编译了我的资产,所以我的图像会出现在Heroku上。我想减少我的slug尺寸,所以我优化了我的图像。试图减少加载时间,我减少了我的图像的大小。然后我再次预编译它们。我没有将旧图像替换为新图像,而是存储了两组图像。
我已经运行了heroku run bash,打开了我的应用程序命令提示符。之后,我将CD放入我的assets / images目录并运行ls。我在路径中发现了
app/assets/images
有3组图像。
并在路径中
public/assets/images
有2组图像
这对我的申请来说是一个巨大的信天翁,如果我能解决这个问题,我可以将我的slu size大小减少至少一半。我试过在那些目录中运行
rmdir Dirname
但是我无法删除它们,因为它们中包含文件。
我正在尝试删除我首先不想要的不必要的文件。我已经搜索了您的文档,但您没有描述如何从您的slug中删除文件。
我也不想丢失我应用中的任何数据,因为它花费了大量时间来构建数据。
请回答这个问题的答案。
END LETTER
基本上,这是一个巨大的信天翁,它让我发疯。我试过了
heroku run bash
输入我的应用程序的命令提示符
我已进入我的应用程序的app / assets / images目录,我不喜欢我所看到的内容。在每个子目录下,我看到每个图像的三个副本。 ARGHHHH!在公共/资产/图像下,我看到了每张图片的两份副本。
我想知道我是否可以删除这只信天翁,因为这样浪费我的时间。
答案 0 :(得分:7)
有一件事有用的是将.slugignore文件添加到项目的根目录,告诉Heroku不要将某些文件或目录编译到slug中。我看起来像这样:
*.psd
*.pdf
test
spec
features
doc
public
公共条目在那里,因为我提供来自亚马逊S3服务的所有静态文件;如果您没有使用外部内容传送系统,请将该行关闭。
答案 1 :(得分:2)
我可能有这个错误(如果我这样做,请纠正我!),但是当我的资产发生任何变化时,这就是我一直在做的事情:
清除现有资产清单:
rake assets:clean
删除“public \ assets”文件夹中的所有文件
预编译资产的生产版本:
RAILS_ENV=production rake assets:precompile
然后提交&推送到Heroku
你最终只能以Heroku的方式获得一份资产副本。
答案 2 :(得分:1)
段塞大小包括您正在使用的宝石的大小:
https://devcenter.heroku.com/articles/slug-compiler#slug-size
我会在安装宝石的地方运行几个$ du
命令,然后尝试查找大宝石。
http://www.computerhope.com/unix/udu.htm
考虑到这一点,如果您已经完成了向项目中添加宝石,那么接近极限可能并不重要,因为60 MB是一个相当数量的代码/图像空间。如果您还有更多要添加的图像,可以考虑将它们托管在其他位置。