Reputation: 4359
In my Laravel project I'm trying to load an image into my view using blade but it displays as a broken link. I inspect it with firebug and the src is pointing to the image but nothing is displaying.
My image is located in my project's public/images/users/3/profilePictures/
Here is my <img>
in the view.blade.php
<img class="com-profile-picture" src="images/users/{{ $follower->id }}/profilePictures/50thumb-{{ $follower->profilePicture->url }}" alt="{{ $follower->first_name }} {{ $follower->last_name }} Profile" width="50" height="50">
However I get this when I load the page:
When I inspect the image with firebug I see this:
That is the correct src and the image does exist in my public/images/users/3/profilePictures/ directory
Anyone know why this is happening?
Upvotes: 12
Views: 79618
Reputation: 1
Delete the existing public/storage and run: php artisan storage:link
Upvotes: 0
Reputation: 527
This is a very old question but here is the answer for new developers who might face the same issue
This must resolve your issue, if it doesn't please message me I'll help you debug it.
Upvotes: 1
Reputation: 1
Delete the storage shortcut Then create Another shortcut for storage Folder Create Shortcut Storage Folder Then run php artisan storage:link
Upvotes: -1
Reputation: 41
Storage location before (Not Working) :
<img src="{{asset('storage/app/public/media/productImages/'.$list->image)}}" alt="" srcset="">
Working storage location :
<img src="{{asset('storage/media/productImages/'.$list->image)}}" alt="" srcset="">
Else try :
php artisan storage:link
Upvotes: 0
Reputation: 1241
if you are using laravel, consider excluding public folder or any folder where your public files are store in .htacccess from folders that laravel control.
Do it like this in .htaccess
# Exclude directory from rewriting RewriteRule ^(public/) - [L]
Upvotes: 0
Reputation: 890
delete already generated symlink and then run this command
php artisan storage:link
Upvotes: 3
Reputation: 2341
You can try with the
php artisan storage:link
else you can use this
A simple fix for the issue (linked broken error)
in .env
file
APP_URL=http://localhost
this replace with the
APP_URL=http://localhost:8000
then the issue will be fixed.
Upvotes: 18
Reputation: 3411
This may be caused you are in a route which does not represent the base URL. You should generate the URL for your assets relative to the public/
folder. Use URL::asset('path/to/asset')
to generate the URL.
{{ URL::asset("images/users/{$follower->id}/profilePictures/50thumb-{$follower->profilePicture->url}") }}
Or as @lukasgeiter mentioned you can simply use asset('path/to/asset')
helper.
Upvotes: 17