Arrière-plan :
Le mécanisme de stockage de Laravel vous permet de stocker les avatars des utilisateurs et d'autres fichiers, mais ces fichiers se trouvent généralement dans le dossier /storage, qui est inaccessible via les requêtes HTTP habituelles pointant vers le dossier /public dossier.
Solution :
Pour afficher les avatars des utilisateurs depuis le stockage dans vos vues, il existe deux approches principales :
1. Création d'un lien symbolique
L'approche recommandée consiste à créer un lien symbolique entre le dossier /public/storage et le dossier /storage/app/public à l'aide de la commande suivante :
php artisan storage:link
Cela crée un raccourci qui vous permet d'accéder aux fichiers de stockage comme s'ils se trouvaient dans le dossier /public. Vous pouvez ensuite accéder à l'avatar dans votre vue comme suit :
<img src="{{ asset('storage/avatars/' . $user->avatar) }}">
2. Utilisation d'un itinéraire personnalisé
Si vous ne pouvez pas créer de lien symbolique pour une raison quelconque, vous pouvez définir un itinéraire personnalisé qui lit et sert le fichier image. Voici un exemple utilisant une route de fermeture :
Route::get('storage/{filename}', function ($filename) { $path = storage_path('public/' . $filename); if (!File::exists($path)) { abort(404); } $file = File::get($path); $type = File::mimeType($path); $response = Response::make($file, 200); $response->header("Content-Type", $type); return $response; });
Vous pouvez ensuite accéder à l'avatar dans votre vue en utilisant la route /storage :
<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">
Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!