herokuは、ユーザーがアップロードした資産を特別に保持するのにはあまり適していません。
carrierwaveを使用してアップロードすることをお勧めします。エンドポイントがprodと同じであることを指摘できます。
私のセットアップは次のとおりです。
マイGemfile
#Gemfile
gem 'fog', "~> 1.3.1"
gem 'carrierwave'
初期化子
#config/initializers/carrierwave.rb
CarrierWave.configure do |config|
config.storage = :fog
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['CARRIER_WAVE_ACCESS_KEY'],
:aws_secret_access_key => ENV['CARRIER_WAVE_SECRET_ACCESS_KEY']
}
config.cache_dir = "#{Rails.root}/tmp/uploads"
config.fog_directory = ENV['CARRIER_WAVE_BUCKET']
config.fog_attributes = { 'Cache-Control'=>'max-age=315576000' }
end
アップローダ
アプリ/アップローダ/ file_uploader.rb
# encoding: utf-8
class FileUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
# include CarrierWave::MiniMagick
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
私は、これは正確にあなたの質問はなかったことを知っているが、私はそれが
を助けること:)
私はそれを受け入れ、私の質問に答えてこれをupvoted。しかし、私の問題は解決しません。私は特定のリリースから資産をダウンロードしたい。もし私がそのリリースにロールバックし、 '' git pull heroku master''を実行すると、それは最新であると言われます。私が見る限り、herokuのgitリポジトリはローカルマシン上のgitリポジトリのレプリカであるため、herokuにプリコンパイルすることで追加されるアセットは含まれません。どのようにこれらを取得するための任意のアイデアですか? – Obromios
これらの資産は.gitignoreにある可能性がありますか? – MZaragoza
いいえ、彼らは.giitignoreにいません。問題は、ヒロクでプリコンパイルが発生した場合、プリコンパイルがコミットされないことです。 – Obromios