Railsの画像のパス – assets配下とpublic配下 –

Railsアプリケーションでは、画像ファイルをどのディレクトリに置くかで、image_tagのパスの書き方が違います。

assets配下に置く場合

app/assets/images配下に画像ファイルを置く場合、下記のように書きます。

<%= image_tag "sample.jpg" %>

public配下に置く場合

publicディレクトリに置く場合は、下記のようにパスを「/」から始めます。

<%= image_tag "/sample.jpg" %>

assets配下とpublic配下の違い

assets配下に置く場合、アセットパイプラインの対象となります。アセットパイプラインは、アセット(CSSやJavascriptなど)を最小化して表示を早くしてくれます。また、アセットがブラウザでキャッシュされますので、更に速くなります。

app/assets/imagesに置いて画像をキャッシュする場合、画像ファイルを更新し、同じ画像ファイル名でありながらファイル内容をアップデートされた場合、ブラウザにキャッシュされた画像が残っていると、新しい画像が表示されず、キャッシュされた画像が表示されてしまいます。

/config/environments/のファイルに下記の記述を追記すると、同じ名前で画像をアップデートしても画像ファイル名にフィンガープリントが追記・更新され、新しい画像がちゃんと表示されるようになります。

config.assets.digest = true

Ruby on Railsをこれから本格的に勉強したい人は「エンジニアになるための600時間のプログラミング学習に耐え抜くコツ」という記事がおすすめです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする