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
From the docs
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