Buenas prácticas oficiales de Symfony

Capítulo 10. Assets web

Los assets web son las hojas de estilo CSS, los archivos JavaScript y las imágenes que se utilizan en el frontend de las aplicaciones para que tengan un buen aspecto. Normalmente los programadores Symfony crean estos archivos en los directorios Resources/public/ de los bundles.

Buena Práctica Almacena todos los assets en el directorio web/ del proyecto.

Dispersar los assets entre decenas de directorios diferentes hace que sea más difícil gestionarlos por parte de tu equipo. El trabajo de los diseñadores será mucho más fácil si todos los assets se encuentran en un único lugar.

Además, al centralizar tus assets, el código de las plantillas se simplifica porque los enlaces son mucho más concisos:

<link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}" />
<link rel="stylesheet" href="{{ asset('css/main.css') }}" />

{# ... #}

<script src="{{ asset('js/jquery.min.js') }}"></script>
<script src="{{ asset('js/bootstrap.min.js') }}"></script>

Nota El directorio web/ es público, por lo que cualquier usuario puede acceder a todos sus contenidos directamente desde su navegador. Si prefieres que los usuarios no accedan a los archivos originales de los assets (por ejemplo los archivos CoffeScript, Sass y LESS), guarda los archivos originales en app/Resources/assets/ y almacena en web/ solamente el resultado de compilar esos archivos.