概要
初めてDockerを用いてLaravelで画像アップロードができる掲示板アプリを作った時のお話です。
アプリ制作中せっかく画像アップロード機能が正常に動いたのに、はじめに作ったディレクトリ構造が気に食わずちょいと直した結果、画像表示がされなくなってしまいました。その時の解決方法を備忘録として残します。
ディレクトリ構造
larapic
├── README.md
├── infra
│ ├── mysql
│ │ ├── data
│ │ └── my.cnf
│ ├── nginx
│ │ ├── default.conf
│ │ └── Dockerfile
│ └── php
│ ├── Dockerfile
│ └── php.ini
├── docker-compose.yml
└── laravel(以降laravel①)
└── Laravel(以降laravel②)
├── app
├── bootstrap
├── config
├── ・・・
このディレクトリ構造で始めてしまいました。laravelが1ついらないですね。
ある程度アプリが出来上がり、余裕が生まれたところでこのディレクトリ構造を直したいと思い立ちました。
laravel②を①の階層に上げて、①を削除。これでOK〜!
…と思いきや、画像が表示されなくなってしまいました。ガーン。
解決方法
シンボリックリンクに原因がある模様です。一度シンボリックリンクを解除し、再度シンボリックリンクを貼ります。
terminal
# publicフォルダに移動しシンボリックリンクを解除
% cd public
% rm -rf storage
# 戻って再度シンボリックリンクを張る
% cd ../
% php artisan storage:link