En suivant la documentation de Laravel (j'utilise Laravel avec docker en utilisant sail), j'ai créé un lien symbolique pour le stockage php artisan storage:link
. J'ai également essayé de recréer le lien en utilisant le chemin complet en partant de la racine.
Puis je stocke un fichier
// ... $filename = 'signatures/signature_' . auth()->user()->id . '-' . uniqid() . '.' . $image_type; Storage::disk('public')->put($filename, $image_base64);
Après cela, je peux ouvrir avec succès mon fichier depuis la console :
open public/storage/signatures/signature_101-62a876ce68884.png
Quand j'essaie d'accéder au if depuis mon url, j'obtiens un 404 :
http://laravel.test/storage/signatures/signature_101-62a876ce68884.png
J'ai remarqué en essayant d'afficher l'image :
<img src="{{ url('/storage/' . $clients->signature->filename) }}">
J'ai enfin essayé
rm public/storage php artisan optimize:clear php artisan storage:link
Aucun succès
J'ai trouvé la solution. Laravel recommande d'utiliser sail en premier, mais la documentation ne couvre pas ce comportement.
Les liens symboliques doivent être créés dans le conteneur !
Dans le répertoire racine du projet :