Voyager uses Laravel's filesystem to store media files, to access these files on the browser you need to create a shortcut folder in the public directory that points to the storage folder of your app, You can do that easily with artisan using this command
php artisan storage:link
But if your app is on shared hosting you probably don't have access to a CLI so as a workaround you need to create a
symlink.php in your public directory that contains this script
?php symlink('/path_to_public_directory', '/path_to_storage_directory');
Then open this file on the browser, this will automatically create a shortcut folder that points to the storage folder.
But even after doing this, you will still see a warning on your Voyager dashboard saying that: Missing storage symlink.
To fix that you need to change the
root path of the
public disk in
'public' => [ 'driver' => 'local', 'root' => public_path('storage'), 'visibility' => 'public', ],
Now Voyager can access the media files without any problems.