ruby-on-rails - 使用 Asset Sync Gem 时 Heroku 上的 Slug 大小问题

标签 ruby-on-rails ruby-on-rails-3 heroku amazon-s3 asset-sync

我有一个包含大量 Assets 的 Rails 3.2 应用程序。没关系,因为我正在使用 [Asset Sync Gem( https://github.com/rumblelabs/asset_sync ),它将我所有编译的 Assets 推送到 S3 存储桶。

问题是这些 Assets 仍然包含在 slug 大小中,即使应用程序使用 S3 上的版本。这导致我的 slug 大小最终超过 300MB 限制。

我不能使用 .slugignore文件,因为这会阻止文件同步,所以 一旦 AssetSync 将它们推送到 S3 并且在编译 slug 之前,如何删除所有 Assets ?

[更新]

我现在在本地预编译所有内容。 Heroku 编译资源的速度非常慢,更重要的是,它每次都编译所有内容。一旦您的 Assets 达到非平凡的大小,这真的很痛苦。我现在在本地预编译,并有一个 Rake 任务检查 list 并推送到 Heroku。

最佳答案

您可以在 assets:clean 之后添加删除目录的行为正在运行

require 'fileutils'
Rake::Task["assets:clean"].enhance do
  FileUtils.remove_dir "#{Rails.root}/public/assets", true
end

你可以把它放在你的 Rakefile 中。

关于ruby-on-rails - 使用 Asset Sync Gem 时 Heroku 上的 Slug 大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243332/

相关文章:

ruby-on-rails - Rails 3.1 应用程序未定义 JST

ruby-on-rails - 对模型的多个字段施加唯一约束

mysql - 如何进行 Heroku Jawsdb InnoDB 数据库恢复?

ruby-on-rails - RoR : POST to a page using raw form data. 怎么样?

jquery - 将 Rails 表单中字符串类型的数据转换为日期

ruby-on-rails-3 - 如何使用 handlebar.js 模板作为 rails View 引擎?

ruby-on-rails - 如何在 Rails 中编写和包含常规 ruby​​ 类

mysql - 如何在mysql中使用ruby的用户定义变量?

javascript - Heroku - Socket.IO 客户端总是连接到本地主机

node.js - Yeoman 构建的 Angular 应用程序未将 Bootstrap 字体部署到 Heroku