LoginSignup
2
2

More than 3 years have passed since last update.

Laravelで画像を表示する方法

Posted at

PHP、Laravelの初学者です。

Laravelで画像を表示させる方法がわかったので、メモしておきたいと思います。

※ 使用しているLaravelのバージョンは6.xです。違うバージョンをご使用の方はご注意ください。
また、私はMacを使用しているので、Windowsをご使用の方もご注意ください。

Laravelで画像を表示させる方法

①「自分のプロジェクト/storage/app/public」の中に利用したい画像を置く。

 私は「/storage/app/public」にtop-page.jpgを入れました(以下の画像をご覧ください)。

image.png

② シンボリックリンクを張る

Laravel6.xの公式ドキュメントを見たところ、
「/storage/app/public」においた画像を使えるようにする(Webからのアクセスを許す)には、
「『public/storage』から『storage/app/public』へシンボリックリンクを張る」という作業が必要になるようです。

Laravel6.xの公式ドキュメント

シンボリックリンクって何だろう?🤔

シンボリックリンクとは、オペレーティングシステム(OS)のファイルシステムの機能の一つで、特定のファイルやディレクトリを指し示す別のファイルを作成し、それを通じて本体を参照できるようにする仕組み。

こちらから引用

んー。まだ難しい。
もう少し噛み砕いて説明された記事がありました。

シンボリックリンクとは

要は「代理人」のような役割を持つのが、このシンボリックリンクだそうです。
例を引用させていただくと

例えば、ファイルAと、シンボリックリンクA’があるとしましょう。
シンボリックリンクA’は、ファイルAのシンボリックリンクです。このシンボリックリンクA’を開くと、ファイルAが開きます。
ファイルAを直接開いたのと同じ結果です。

要は、代理人みたいなものですね。
シンボリックリンクは、自分がそのファイルやフォルダであるかのように振る舞います。

とのことです。

さて、前置きが長くなりましたが、このシンボリックリンクを張るには、以下のコマンドを実行しましょう。

ターミナル
php artisan storage:link

③シンボリックリンクを張ることができたら、ビューファイルに以下のように記述すれば画像を表示できます。

index.blade.php
<img src="/storage/top-page.jpg">

image.png

こんな感じで成功しました!

以上です。
何かありましたらコメントで教えていただけますと幸いです。

ここまで読んでいただきありがとうございました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2