@elo Try to run this command from your public folder, where you have js and css files, so you create your symlink manually.
ln -s ../storage/app/public storage
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I have deployed a laravel application which is using the Nova admin for backend management on Bluehost VPS account. I have creates a symlink between storage and public as recommend in the laravel documentation.
I have set up a resource for uploading images like so
Avatar::make('Image')->onlyOnIndex(),
Image::make('Image')->disk('public')
->path('item-category')->required()->hideFromIndex()
I am using the public disk for storage with the filesystem disk configuration like so
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
On my local system, I am able to see the actual image displayed but on the staging the image is uploaded successfully but does not display because the image is not found when request is made for the image
Request URL:https://staging.example.com/storage/item-category/QCfcNCbZ0idd69muyL0Ux7X95NYj1Y0GgVSvYi0k.png
I can confirm that the image is stored in the db table, and inside staging/storage/app/public/item-category
Why does this same configuration work on my local dev system but not on the staging server? Spent the best part of my morning trying to figure this out.
Please or to participate in this conversation.