【问题标题】:Heroku Slug Size is 237MB the Repo Size is 70MBHeroku Slug 大小为 237MB,回购大小为 70MB
【发布时间】:2014-10-20 04:57:19
【问题描述】:

统计数据

Stack: Cedar
Framework: Ruby
Repo Size: 78.3MB
Slug Size: 237MB of 300MB

致 Heroku 支持的信

我的 Slug Size 已经膨胀到了 237MB。我的 repo 大小只有 75MB 左右。我已经确定原因是我的资产多次存储在我的 slug 中,占用了不必要的空间。

我第一次预编译了我的资源,所以我的图像会出现在 Heroku 上。我想减小我的蛞蝓大小,所以我优化了我的图像。为了减少加载时间,我减小了图像的大小。然后我再次预编译它们。我的 slug size 没有将旧图像替换为新图像,而是存储了两组图像。

我已经运行 heroku run bash 来打开我的应用程序的命令提示符。之后,我 CD 到我的 assets/images 目录并运行 ls。我在路径中发现了这一点

app/assets/images

共有 3 组图片。

在路径中

public/assets/images

有2组图片

这对我的应用程序来说是一个巨大的信天翁,如果我能解决这个问题,我可以将我的 slug 大小至少减少一半。我尝试在那些目录中运行

rmdir Dirname

但我无法删除它们,因为它们中有文件。

我正在尝试删除我一开始不想要的不必要的文件。我已经搜索了你的文档,但你没有描述如何从你的 slug 中删除文件。

我也不想丢失应用中的任何数据,因为构建这些数据需要花费大量时间。

请回复我这个问题的答案。

结束信

基本上,这是一只巨大的信天翁,它快把我逼疯了。我试过跑步

heroku run bash

为我的应用程序输入命令提示符

我 cd 到了我的应用程序的 app/assets/images 目录,但我不喜欢我所看到的。在每个子目录下,我看到每个图像的三个副本。啊啊啊!在 public/assets/images 下,我看到每张图片都有两个副本。

我想知道是否有办法可以移除这只信天翁,因为这太浪费我的时间了。

【问题讨论】:

  • 您可能想要使用.gitignore 文件。 devcenter.heroku.com/articles/slug-compiler
  • 旧图像仍将保留在您的 git 历史记录中。
  • 那我该如何删除它们呢?它们是吞噬空间的信天翁。
  • git 历史中的旧版本图像不会占用 slug 中的空间。只有在.gitignore 中未被忽略的头部提交中的文件才会存在。这意味着每个图像有两个副本(一个在应用程序/资产中,另一个在公共/资产中)。

标签: ruby-on-rails ruby heroku


【解决方案1】:

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

  1. 清除现有资产清单:

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

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

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

以这种方式,您最终应该在 Heroku 上只得到一份资产副本。

【讨论】:

  • 这实际上将我的 slug 大小减少了 2/3。干得好!
  • 我已经离开 Heroku 循环两年多了。我不敢相信这仍然是有用的信息。 :D
【解决方案2】:

蛞蝓大小包括您正在使用的宝石的大小:

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

我会在你的 gem 安装位置运行几个 $ du 命令并尝试找到大的。

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

考虑到这一点,如果您已将 gem 添加到项目中,那么接近限制可能并不重要,因为 60 MB 是相当大的代码/图像空间可供使用。如果您确实有更多图片要添加,您可以考虑将它们托管在其他地方。

【讨论】:

    【解决方案3】:

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

    *.psd
    *.pdf
    test
    spec
    features
    doc
    public
    

    公开条目在那里,因为我提供来自 Amazon 的 S3 服务的所有静态文件;如果您不使用外部内容交付系统,请不要使用该行。

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 2011-11-12
      • 2015-07-23
      • 2021-09-28
      • 1970-01-01
      • 2021-01-20
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多