0

Rails 3.2.6 を使用しており、carrierwave を使用して画像をアップロードしています。画像をアップロードすると、正常に表示され、画像の URL も正常に機能します。しかし、heroku で次の git commit をプッシュすると。

       git push staging master    

すでにアップロードしたすべての画像が表示されず、その画像パスが機能しないのはなぜですか?

何が問題なのか誰でも教えてください。

タナクス

4

2 に答える 2

1

アップロードは機能しますが、新しいコードをプッシュするか、アプリケーションを再起動すると、アップロードが失われます。

Heroku はエフェメラル ファイル システムを使用しており、各 dyno が最初にデプロイされたコードの個別のコピー (スラッグ) を受け取るため、アップロードはアップロードを処理した dyno にのみ存在します (https://devcenter.heroku.com/articles/dynos#一時的なファイルシステム)。

Amazon S3、Rackspace Files などの外部永続データ ストアを使用する必要があります。

于 2013-01-04T09:57:40.453 に答える
1

s3 で Carrierwave をセットアップしましたか (https://github.com/jnicklas/carrierwave#using-amazon-s3)? Heroku には読み取り専用のファイル システムがあります (https://devcenter.heroku.com/articles/s3)。

于 2013-01-02T18:24:54.113 に答える