Zugriff auf im Laravel-Speicher hochgeladene Bilder zum Rendern von Ansichten
In Laravel-Anwendungen können Benutzeravatare oder andere Medienressourcen im Speicherverzeichnis gespeichert werden . Um auf diese Bilder zuzugreifen und sie in einer Ansicht anzuzeigen, haben Sie mehrere Möglichkeiten:
1. Erstellen Sie einen symbolischen Link
Ab Laravel 5.3 erstellt der Befehl artisan storage:link einen symbolischen Link von public/storage zu storage/app/public. Dadurch können Sie über den vorherigen Pfad auf Dateien im letztgenannten Verzeichnis zugreifen:
http://somedomain.com/storage/image.jpg
2. Verwenden Sie eine benutzerdefinierte Route für den Dateidienst
Wenn das Erstellen eines symbolischen Links nicht möglich ist, können Sie eine benutzerdefinierte Route zum Lesen und Bereitstellen von Bildern erstellen:
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; });
Mit dieser Route Sie können über den folgenden Pfad auf Dateien zugreifen:
http://somedomain.com/storage/image.jpg
3. Verwenden Sie die Interventionsbildbibliothek (optional)
Wenn Sie die Interventionsbildbibliothek verwenden, können Sie deren Methode „response()“ nutzen:
Route::get('storage/{filename}', function ($filename) { return Image::make(storage_path('public/' . $filename))->response(); });
Wichtiger Hinweis:
Das manuelle Bereitstellen von Dateien kann im Vergleich zur direkten Verarbeitung durch den HTTP-Server zu Leistungseinbußen führen. Betrachten Sie daher symbolische Links als die bevorzugte Methode für eine optimale Leistung.
Das obige ist der detaillierte Inhalt vonWie greife ich für eine optimale Leistung auf gespeicherte Bilder in Laravel-Ansichten zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!