Hintergrund:
Der Speichermechanismus von Laravel ermöglicht Ihnen das Speichern von Benutzeravataren und andere Dateien, aber diese Dateien befinden sich normalerweise im Ordner /storage, auf den über reguläre HTTP-Anfragen, die auf /public verweisen, nicht zugegriffen werden kann Ordner.
Lösung:
Um Benutzeravatare aus dem Speicher in Ihren Ansichten anzuzeigen, gibt es zwei Hauptansätze:
1. Erstellen eines symbolischen Links
Der empfohlene Ansatz besteht darin, einen symbolischen Link zwischen dem Ordner /public/storage und dem Ordner /storage/app/public mit dem folgenden Befehl zu erstellen:
php artisan storage:link
Dadurch wird eine Verknüpfung erstellt, mit der Sie auf Speicherdateien zugreifen können, als ob sie sich im Ordner /public befänden. Anschließend können Sie wie folgt auf den Avatar in Ihrer Ansicht zugreifen:
<img src="{{ asset('storage/avatars/' . $user->avatar) }}">
2. Verwenden einer benutzerdefinierten Route
Wenn Sie aus irgendeinem Grund keinen symbolischen Link erstellen können, können Sie eine benutzerdefinierte Route definieren, die die Bilddatei liest und bereitstellt. Hier ist ein Beispiel mit einer Schließungsroute:
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; });
Sie können dann über die /storage-Route auf den Avatar in Ihrer Ansicht zugreifen:
<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">
Überlegungen:
Das obige ist der detaillierte Inhalt vonWie zeige ich Benutzeravatare aus Laravel Storage in Ansichten an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!