【Bootstrap】Jambotron(ジャンボトロン)の画像がRails本番環境で表示されない問題の対処

Rails開発でBootstrapのJambotronを使って、画像を配置したとき、開発環境では問題なく表示されましたが、Herokuで本番環境にpushして、確認をしてみると、うまく表示されていなかったので、そんな時の対処方法をメモいたします。

対処前の状態

views

画像はapp/assets/images/配下に置いています。

css

これで、開発環境では画像が表示されていました。

本番ではエラー

しかし、本番でも確認しようとHerokuにpushして、ブラウザを見てみると、画像が表示されていなかったので、$ heroku logs -tコマンドでログを確認してみると、、、

RoutingErrorが出ていました!

対処方法

image_urlというRailsメソッドで呼び出してやることで、本番環境でも、問題なく表示されるようになりました!

css

ログにもエラーは出なくなりました。

その他の解決方法としては、app/assetsではなくて、public/assetsに画像を配置するという方法があります。ですが、これではRailsの推進するAssetPipelineが適用されません。よって、AssetPipelineの仕組みを使って、よりブラウザからの読み込み速度を上げるためにはapp/assets/images ディレクトリに画像を置くことが良いと言えます。

以上です!
どなたかのお役に立てば幸いです!!


投稿者:

Shuji Tenra

「仕事に特化したQ&AサイトJobQuery【ジョブクエリ】」の開発/運営をしています。https://jobquery.jp