使用Asset Sync Gem时Heroku上的Slug大小问题

时间:2013-08-14 22:23:38

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

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

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

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

[UPDATE]

我现在在本地预编译所有内容。 Heroku在编译资产方面非常缓慢,更重要的是,它每次都会编译所有内容。一旦您的资产达到非平凡的规模,这真的很痛苦。我现在在本地预编译,并有一个Rake任务,检查清单并推送到Heroku。

1 个答案:

答案 0 :(得分:3)

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

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

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