When I worked on laravel local development server php artisan storage:link works fine for me. But when I transfer my site to production server then I saw my public
php artisan storage:link
I solved this problem by another command for creating a symbolic link by terminal/cmd/shh:
ln -s /path/to/laravel/storage/app/public /path/to/public/storage
I solved this also Using laravel web route routes/web.php
Route::get('/foo', function () { Artisan::call('storage:link'); });