質問: いつもお世話になっております。 現在Railsでサイトを作成しております。development環境にするため、アセットのプリコンパイル、production DBの作成、SECRET_KEY_BASEの設定を行い「rails server --environment production」で起動すると「rails server」で起動した際には正しく表示されていたpublic内の画像にアクセスできなくなってしまいました。 ググってみてもassets内の画像を表示できないというのはよく見るのですが、public内の画像が読めなくなったという記事は発見することができず...... rails server --environment production」で起動した際にassets内の画像は読むことができますが、ユーザーのアップロード画像などをpublic内フォルダに入れ読み込むため、assetsではなくpublic内の画像を読み込む必要があるのです。 確認すべき点などをご教示いただけますと幸いです。 よろしくお願いいたします。 ``` #画像は #pulic/xxxx/ フォルダ内のabc.png #以下コードで「rails server」で起動した際には画像が表示されるが #「rails server --environment production」で起動すると表示されなくなる show.html.erb <%= image_tag("/xxxx/abc.png")%> ```
回答: 方法1 ==== config/environments/production.rbに下記を追加 ``` config.public_file_server.enabled = true ``` でサーバー再起動するとどうなりますでしょうか? 方法2 ==== もしくは、publicにどうしても置く必要がなければ、 app->assets->imagesフォルダに置くのが良いと思います。 app->assets->images->chicago.jpgにファイルのアクセスする場合は`image_tag`ヘルパーを使います。 本番環境の場合、事前に`$ assets precompile`を走らせる必要があります。 ``` # erbファイルに記述する <%= image_tag("chicago.jpg") %> ```