LoginSignup
yuktkhs
@yuktkhs (yuki takahashi)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Laravel viewに画像を表示させたい

Q&AClosed

解決したいこと

laravelにてpublic/storageに保存されている画像パスを持ってきて画像を表示させたいです。
storageに画像パスが保存されていることは確認できています。
viewを検証ツールで確認しても特にエラーは起きていないようです。

該当するソースコード

<img src="{{ asset('storage/image/' . $recipe->image_path )}}" alt="">

画像を保存する処理(contoroller)

if (isset($form['image'])) {//変数に値が入っているかをチェック
            $path = $request->file('image')->store('public/image');// 画像をstorage/app/public/image配下に保存
            $recipe->image_path = basename($path);//パスからを取得したファイル名をimage_pathカラムに保存
        } else {
            $recipe->image_path = null;
        }

自分で試したこと

シンボリックリンクをしましたが表示させることができませんでした

php artisan storage:link

追記 2/24

シンボリックリンクを貼った後のディレクトリ構成
image.png

http://127.0.0.1:8000/storage/image/画像ファイル名の実行結果
Status Code: 200 OKを返している
image.png

追記2/25 表示ビュー

home.blade.php
@foreach($posts as $recipe)
  <tr>
   <th scope="row">{{ $recipe->recipe_name }}</th>
   <td>{{ \Str::limit($recipe->comment, 200 )}}</td>
   <td>
    <img src="{{ asset('storage/image/' . $recipe->image_path) }}" alt="">
   </td>
  </tr>
@endforeach

画像ファイル拡張子(heic)

0

2Answer

URLで直接アクセスしたときに画像は表示されますか?
http://localhost/storage/image/画像のパス

1

Comments

  1. @yuktkhs

    Questioner
    コメントありがとうございます
    確認したところ問題なく表示できました
  2. であれば検証ツールで画像のネットワークが200返してるか見てください
    それでも問題なさそうなら環境が悪いような気がします(ドキュメントルートあたりとか)
  3. @yuktkhs

    Questioner
    検証ツールで確認したところ、ネットワーク200を返しておりました。
    ドキュメントルートを確認してみます
  4. @yuktkhs

    Questioner
    ご回答ありがとうございました。
    画像ファイルの拡張子(heic)の問題でした。

Comments

  1. @yuktkhs

    Questioner
    store('public/image') => store('image')へ変更してみましたが表示されませんでした。。。
  2. @yuktkhsのコードを試しました、全然大丈夫です。
    念の為、@yuktkhsさんはフロントエンドで何を使っていますか?(vueとか、blade.phpとか)。画像表示のコードと画像のファイル拡張子(file extension)を教えてください。
  3. @yuktkhs

    Questioner
    ご回答ありがとうございます。
    ファイル拡張子についてご質問いただき、確認してみました。
    ファイル拡張子は(heic)のファイルでしたが、jpegの画像で処理してみたところ問題なく表示させることができました。

    heic=>jpegへの変換についてはまた学習しようと思います。
    ありがとうございました。

Your answer might help someone💌