Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用资产同步Gem时Heroku上的Slug大小存在问题_Ruby On Rails_Ruby On Rails 3_Heroku_Amazon S3_Asset Sync - Fatal编程技术网

Ruby on rails 使用资产同步Gem时Heroku上的Slug大小存在问题

Ruby on rails 使用资产同步Gem时Heroku上的Slug大小存在问题,ruby-on-rails,ruby-on-rails-3,heroku,amazon-s3,asset-sync,Ruby On Rails,Ruby On Rails 3,Heroku,Amazon S3,Asset Sync,我有一个Rails 3.2应用程序,它有很多资产。这没关系,因为我使用的是[Asset Sync Gem(),它将我所有编译的资产推送到一个S3存储桶中 问题是,即使应用程序使用S3上的版本,这些资产仍然包含在slug大小中。这导致我的slug大小最终超过了300MB的限制 我不能使用.slugignore文件,因为这会阻止文件同步,所以一旦AssetSync将其推送到S3,在编译slug之前,我如何删除所有资产? [更新] 我现在在本地预编译所有内容。Heroku编译资产的速度非常慢,更重要的

我有一个Rails 3.2应用程序,它有很多资产。这没关系,因为我使用的是[Asset Sync Gem(),它将我所有编译的资产推送到一个S3存储桶中

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

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

[更新]


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

你可以添加删除文件的行为运行
资产后的目录:clean

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

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

有什么更新吗?你知道为什么在部署到Heroku时slug大小仍然高于限制吗?@p.matsinopoulos我很久以前就停止使用Asset Sync了。我想我在涉及它的问题上浪费的时间比所有其他Gem加起来都多。我现在使用的是(更可取的)将所有内容推送到Heroku并在前面使用CDN的方法。S3 bucket前面有一个不同的CDN,用于动态生成的资产。资产:clean完成了这项工作。我已经测试过,它可以工作。