web-dev-qa-db-fra.com

Laravel - Comment rétablir un lien symbolique de stockage local et actualiser

Lorsque j'enregistre des images dans le stockage, elles s'affichent dans le répertoire stockage/application, mais elles ne s'affichent pas dans public/stockage. J'ai également remarqué qu'un répertoire storage/app/public semble avoir été créé et contient également tout ce qui se trouve dans storage/app.

Je ne peux pas comprendre comment j'ai réussi à provoquer ce gâchis, et je pense qu'il pourrait être judicieux de rétablir ces répertoires comme cela aurait dû être au début (avec un nouveau projet laravel) , supprimez tous les liens symboliques existants et recommencez - cela semble-t-il la meilleure approche? Et comment pourrais-je procéder si j'ai mal configuré le lien symbolique?

7
rushtoni88

Vous pouvez toujours supprimer le lien:

cd public
rm storage

Et créez-en un nouveau sans utiliser le storage:link commande si vous devez lier différents emplacements:

\File::link(storage_path('dir1'), public_path('dir2'));

Ou créer un lien symbolique manuellement :

ln -s /full/path/to/storage/dir1 /full/path/to/public/dir2
9
Alexey Mezenin

Voilà comment cela devrait être! Laravel a une commande pour créer un lien symbolique entre votre répertoire public et le répertoire de stockage:

php artisan storage:link

L'idée est de conserver un stockage persistant entre les déploiements.

Cette convention conservera vos fichiers accessibles au public dans un répertoire qui peut être facilement partagé entre les déploiements lorsque vous utilisez des systèmes de déploiement sans interruption de service comme Envoyer.

https://laravel.com/docs/5.5/filesystem

5
user320487