0

ユーザーが写真をアップロードするRails3.1アプリケーションがあります。それらを/assets/ imagesに保存しています。これは、public/imagesの代わりにimage_tagが検索するパスだからです。

開発ではすべて正常に動作しますが、Herokuにデプロイすると、次のエラーが発生します。

ActionView :: Template :: Error(image_name.jpegはプリコンパイルされていません)

そのような状況に対処する正しい方法は何ですか?アップロード後に画像をコンパイルする方法はありますか、それとも別の場所に保存する必要がありますか?

4

2 に答える 2

2
  • アップロードを保存するためにHerokuのファイルシステムを使用しないでください

  • image_pathアップロードされた画像はファイルシステムを参照していると想定しているため、使用しないでください。を使用する場合はimage_tag、画像名だけでなく、完全なURLを渡す必要があります。

于 2011-12-29T04:22:14.070 に答える
1

画像のアップロードにcarrierwaveを使用していますか?搬送波を使用すると、AmazonS3にかなり簡単に保存できます。Carrierwaveの説明他のソリューションでも、S3ストレージに簡単にアクセスできます。

Herokuでは、ファイルシステムにファイルを保存することはできません。走る

RAILS_ENV=production bundle exec rake assets:precompile

アセットをローカルでコンパイルし、gitに追加し、herokuにプッシュしますが、後でherokuのアプリケーションを介して画像を追加することはできません。それらをフォルダーにアップロードすると、/tempしばらくの間、またはコードを再デプロイ/更新するまで、そこにとどまります。

于 2011-12-29T07:25:43.477 に答える