Carrierwave を使用して画像をアップロードしています。現在、アプリは Heroku にあります。新しいコミットをherokuにプッシュしない限り、画像は正常にアップロードされます。プッシュの前にアップロードした画像は、新しいコミットが入ると消去されているようです。この問題の背後にある理由と修正方法を知っている人はいますか?
更新: Amazon EC3 のようなストレージ サーバーを使用せずに、Heroku でcarrierwave を使用する と、問題が発生します。Heroku は、デフォルトで Carrierwave がアップロードするパブリック フォルダにファイルを保存しません。
app/uploaders/image_uploader.rb:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
そして、各コミット後に画像ファイルを保持するために、これを tmp フォルダーのどこかに変更する必要があります。に変えてみました
"#{Rails.root}/tmp/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
しかし、うまくいきません。ローカル環境を確認したところ、イメージは適切な場所に正常に保存されました。したがって、ルートを正しい場所に設定するだけでうまくいくと思います。誰かがこれで私を助けてくれますか?