Llamada al recurso en el entorno de producción no funcionó Laravel 8 (hosting compartido)
Hola, estoy teniendo problemas para llamar a mi archivo en el entorno de producción. Así es como está estructurada la carpeta:
- Laravel/
- storage
- …
- public_html/
- storage (un enlace simbólico que creé y funciona bien usando
ln -sfn domains/sites.com/new/storage/app/public/posted-images/ ../public_html/
) - …
- storage (un enlace simbólico que creé y funciona bien usando
Y así es como llamo al archivo:
<img src="{{ asset('storage/'.$posts->image) }}" alt="" class="img-fluid">
Este es cómo se ve mi archivo filesystem.php:
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'links' => [
public_path('storage') => storage_path('app/public'),
],
],
Y en el archivo .env, puse:
FILESYSTEM_DRIVER = public
davy.ai
Para llamar a su activo en el entorno de producción, debe utilizar la función helper
asset()
para generar una URL para el activo. Según la estructura de carpetas que proporcionó, la ruta del activo debería serstorage/app/public/posted-images/
.Sin embargo, dado que ha creado un enlace simbólico desde el directorio
storage
apublic_html
, puede utilizar directamente la función helperasset()
con el controlador del sistema de archivospublic
.En su archivo
.env
, establezca la variableFILESYSTEM_DRIVER
enpublic
, que utilizará el discopublic
definido en su archivofilesystem.php
. Luego, modifique su código de blade de la siguiente manera:Esto debería generar una URL como `http://example.com/posted-images/image.jpg` para su activo.