Heroku Slug尺寸为237MB,Repo尺寸为70MB

时间:2014-08-26 18:46:29

标签: ruby-on-rails ruby heroku

统计

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!在公共/资产/图像下,我看到了每张图片的两份副本。

我想知道我是否可以删除这只信天翁,因为这样浪费我的时间。

3 个答案:

答案 0 :(得分:7)

有一件事有用的是将.slugignore文件添加到项目的根目录,告诉Heroku不要将某些文件或目录编译到slug中。我看起来像这样:

*.psd
*.pdf
test
spec
features
doc
public

公共条目在那里,因为我提供来自亚马逊S3服务的所有静态文件;如果您没有使用外部内容传送系统,请将该行关闭。

答案 1 :(得分:2)

我可能有这个错误(如果我这样做,请纠正我!),但是当我的资产发生任何变化时,这就是我一直在做的事情:

  1. 清除现有资产清单:

    rake assets:clean
    
  2. 删除“public \ assets”文件夹中的所有文件

  3. 预编译资产的生产版本:

    RAILS_ENV=production rake assets:precompile 
    
  4. 然后提交&推送到Heroku

  5. 你最终只能以Heroku的方式获得一份资产副本。

答案 2 :(得分:1)

段塞大小包括您正在使用的宝石的大小:

https://devcenter.heroku.com/articles/slug-compiler#slug-size

我会在安装宝石的地方运行几个$ du命令,然后尝试查找大宝石。

http://www.computerhope.com/unix/udu.htm

考虑到这一点,如果您已经完成了向项目中添加宝石,那么接近极限可能并不重要,因为60 MB是一个相当数量的代码/图像空间。如果您还有更多要添加的图像,可以考虑将它们托管在其他位置。