2017-08-07 2 views
1

ich habe die Klinge in dieser Route:Laravel „Fehler Ressource laden“

/resources/views/cms/public/views/projects/showproject.blade.php 

Und den Code um das Bild zu machen, ist dies:

@if (Storage::disk('projects')->has($project->slug)) 
    <p class="lead"><img src="{{ asset('/storage/projects/'.$project->slug.'/home.png') }}" width="50%" >Home</p> 
@else 
    <p class="lead"><img src="/assets/img/projects/{{$project->slug}}/home.png" width="50%">Home</p> 
@endif 

Die Speicherplatte genannt Projekte wie hier aussehen :

'projects' => [ 
     'driver' => 'local', 
     'root' => storage_path('app/public/projects'), 
     'url' => env('APP_URL').'/storage', 
     'visibility' => 'public', 
    ], 

Der Fehler ist dies:

header.png Failed to load resource: the server responded with a status of 500 (Internal Server Error) 

Ich denke, das Problem ist in den Code auf der Ansicht, ich lese auch vielleicht brauche ich eine symbolische Verbindung verwenden, ist es nicht möglich machen ohne?

Jede Hilfe wird geschätzt, wenn Sie irgendeine Frage haben, fragen Sie sie bitte.

Danke. (Ich überprüfe die andere Frage von Stackoverflow vorher, und kann den Fehler nicht finden).

+0

Versuchen Sie, den symbolischen Link, alles, was in Ihrem 'storage' Ordner vorhanden ist, und wird von Ihrem' public' Ordner benötigt werden symlinked geladen. – Jorn

Antwort

2

Aus der Dokumentation https://laravel.com/docs/5.4/filesystem:

Der öffentliche Datenträger

Die öffentliche Festplatte ist für Dateien, die öffentlich zugänglich sein werden. Standardmäßig verwendet der öffentliche Datenträger den lokalen Treiber und speichert diese Dateien in storage/app/public. Um sie über das Web zugänglich zu machen, sollten Sie einen symbolischen Link von public/storage zu storage/app/public erstellen. Diese Konvention hält Ihre öffentlich zugänglichen Dateien in einem Verzeichnis, das bei Bereitstellungen mit null Ausfallzeiten, wie z. B. Envoyer, problemlos über Bereitstellungen verteilt werden kann.

die symbolische Verknüpfung erstellen, können Sie den Speicher verwenden kann: Link Artisan Befehl: erstellt

php artisan storage:link 

Natürlich, wenn eine Datei gespeichert wurde, und die symbolische Verbindung wurde, können Sie eine URL erstellen die Dateien des Asset-Helfer mit:

echo asset('storage/file.txt'); 
+1

Hallo Jorn, zuerst einmal vielen Dank für deine schnelle Antwort. Als ich die Frage postete las ich auch das Dokument. Es war erfolgreich, einfach 'php artisan storage: link' und dann' Home'Danke! Lass mich dich etwas fragen, wenn ich weiß nicht, welches ist die Erweiterung, wie sollte ich es tun? Danke trotzdem;) –

+0

Ich würde Ihren Bildnamen, Typ, Pfad in Ihrer Datenbank speichern.Wenn Sie Bilder haben, die Teil Ihres Designs sind und dort für eine bleiben werden Wenn Sie Seiten haben, auf die Sie Bilder hochladen oder häufig ändern, speichern Sie sie, damit Sie den Speicherort abrufen und aus der Datenbank eingeben können – Jorn

Verwandte Themen