【Laravel9】docker環境でstorageに保存した画像が表示できない場合
win10+WSL+Ubuntu+docker 環境でLaravel9 を使っていますが,storageに保存した画像が 404 エラーで表示できなかったので,解決法。
結論 sail shell を使う
投稿画面からアップロードした画像は storage/app/public
に保存されるのですが,この画像をページ上で表示したい場合,ファイルに直接アクセスすることはできないので,public
にシンボリックリンクを貼る必要があります。
> php artisan storage:link
ところが docker 上で環境構築している場合,これではファイルにアクセスしようとしても 404 エラーが出て表示できません。シンボリックリンクの貼り方が間違っているからです。
正しくは,コンテナ内に入ってから上のコマンドを実行します。
> sail shell
> php artisan storage:link
私の場合は,これで解決しました。
例えば,storage/app/public/image/photo.jpg
で保存されているファイルは
localhost/image/photo.jpg
でブラウザに表示できます。
SNSでシェア