# Laravel Filament Admin funciona en Sail, pero no en producción. error 404 en ficheros .js

## Introducción

Terrorífico error de documentación de [FilamentaAdmin](https://filamentphp.com/), que tras unas cuantas horas encontré respuesta. 

Cierto que mi fracaso vino de hacer las cosas como no se deben. **Laravel Sail**, no es del todo confiable porque no usa servidor web (ni el que usas en producción) y yo en ciertos proyectos como este, no uso testing en mi Gitlab sino en local. Entono el *mea culpa*

> Una razón más de que el proceso **desarrollo -> producción** tenga en algún momento una fase de testing con el mismo escenario de producción.


## Error

El error es claro. Se produce un error en la llamada a los ficheros `*.js` de la aplicación laravel (los que le afectan a Filament). 

```
/filament/assets/app.js?id=942414d090ce297f343ebeb13f12bc7 error 404
livewire/livewire.js?id=de3fca26689cb5a39af4 error 404
```

![Developers Tools](https://multimedia.castris.com/imagenes/posts/castris%202022-12-23%20a%20las%2017.44.29.jpg)

En su documentación no habla nada del tema.

En Google hay tropecientos post pero nada.

## Solución

Prestada de del [comentario de @webboty](https://github.com/livewire/livewire/issues/242#issuecomment-94805) está claro que para usuario que desplegamos nuestro trabajo en un servidor Nginx.

Añadir la directiva `try_files $uri /index.php?$query_string;` al fichero del sitio virtual, en la sección `location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {`

```conf
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       try_files $uri /index.php?$query_string;
       access_log        off;
       log_not_found     off;
       expires           14d;
}
```

> Importante no confundir esta sección con la sección `location / {`

Con eso y está solventado.



## Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos.  También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/cart.php?gid=18).