Reputation: 1282
Im using this code in my laravel view to echo a files path, but its coming up in chrome dev tools with a 404 response.
<img src="{{ URL::to('/').Storage::url($post->image) }}">
which echos this onto the page
http://localhost:8000/storage/public/bd0e2f7f.png
The file lives there and this is the correct name for the file so im not entirely sure why its coming up with a 404!
Upvotes: 0
Views: 2188
Reputation: 12277
Simple solution can be:
<img src="{{ Storage::url($post->image) }}">
Reference here .
I am assuming you have included Storage
as you also used it in your code, if not then use this:
<img src="{{ \Illuminate\Support\Facades\Storage::url($post->image) }}">
Upvotes: 0
Reputation: 21122
It looks like even though it sees like your path is fine from the app
root folder it's not where laravel is looking for it. Laravel will look inside app/public
for your path, resulting in an internal app/public/storage/public/bd0e2f7f.png
which, unless you've created a symbolic link between the app/storage/public
and `app/public, wont find the file.
The solution, taken from the documentation, is to run:
php artisan storage:link
from the command line which creates the above-mentioned link, and will allow you to access the file with the url http://localhost:8000/storage/bd0e2f7f.png
, not http://localhost:8000/storage/public/bd0e2f7f.png
The
storage/app/public
directory may be used to store user-generated files, such as profile avatars, that should be publicly accessible. You should create a symbolic link at public/storage which points to this directory. You may create the link using the php artisan storage:link command. source
Upvotes: 2