> Faqs > Crear un enlace simbólico a otro disco de Laravel creado para medialibrary

Crear un enlace simbólico a otro disco de Laravel creado para medialibrary

No puedo ver las imágenes subidas con Media Library en mi aplicación de Laravel. Explico los pasos realizados.

He instalado Spatie Medialibrary. He configurado que las imágenes suban a un disco llamado "media" que he creado específicamente para medialibrary dentro del sistema de archivos de Laravel.

La configuración del disco que he creado en el archivo config/filesystems.php es la siguiente:

'medialibrary' => [
    'driver' => 'local',
    'root' => storage_path('app/medialibrary'),
    'url' => env('APP_URL').'/media',
    'visibility' => 'public',
],

Ese nombre de disco está en config/media-library.php.

'disk_name' => env('MEDIA_DISK', 'medialibrary'),

Al subir imágenes se suben bien y aparecen correctamente en el sistema de archivos, con sus thumbnail y todo. Sin embargo, cuando intento verlas en el sitio web no se muestran.

Creo que es por el enlace simbólico a esta carpeta del storage de Laravel. ¿Cómo puedo crear el enlace simbólico? ¿Alguna sugerencia?

Respuestas

Los enlaces simbólicos los creas con el comando de artisan:

php artisan storage:link

Si, además de public tienes otros discos que enlazar como enlace simbólico, los puedes añadir en el array links del archivo de configuración filesystems.php. Para ello tienes la entrada 'links':

'links' => [
    public_path('storage') => storage_path('app/public'),
    public_path('media') => storage_path('app/medialibrary'),
],

Cuando crees los enlaces simbólicos con storage:link se creará también el enlace simbólico al disco "media".

Si lo deseas, también puedes crear los enlaces simbólicos a mano con el comando ln. En tu caso el enlace que tendrías que realizar sería así:

  • Entras en la carpeta public de tu aplicación;
cd public
  • Ejecutas el comando para crear el enlace simbólico:
ln -s ../storage/app/medialibrary media

Si era el tema del enlace simbólico tu problema, las imágenes ya deberían verse correctamente en tu aplicación Laravel.

Miguel Angel
3295 146 215 17