template asset symfony twig assetic

asset - Symfony 2-Trabajando con activos



symfony twig block (3)

Necesito algunos consejos sobre cómo trabajar con activos en Symfony 2. Por ejemplo, ¿tenemos que realizar siempre los activos: actualizar cada vez que se agrega una imagen? Sé que Assetic se ocupa de la administración de archivos css y javascript, pero ¿qué pasa con las imágenes? ¿Cuál sería la mejor práctica para el desarrollo de front-end con Symfony 2? ¿Cómo configuran sus archivos css, images y js en su aplicación para que sea más fácil desarrollarlos, implementarlos y cambiarlos?


A partir de Symfony 2.7 esto generará enlaces simbólicos relativos en web directorio web :

php app/console assets:install web --symlink --relative

En composer.json, agregue:

"extra": { "symfony-assets-install": "relative" }

Esto también generará enlaces simbólicos relativos en la composer update .



En cuanto a las imágenes, si las agregó a su carpeta pública, creo que no es necesario realizar assets:update

Sin embargo, si agrega la imagen dentro de las carpetas de recursos de un paquete, es posible que tenga que hacerlo, dependiendo de su sistema operativo y de las opciones que utilizó cuando llamó assets:install

Si está utilizando un sistema operativo que admite enlaces simbólicos (Linux, OS X y supongo que todos los sistemas operativos pero Windows), puede instalar las llamadas de activos (no recuerdo exactamente la llamada, lo importante aquí es la opción de enlace simbólico) :

php app/console assets:install web --symlink

De esta forma, en lugar de tener una copia de los recursos de cada paquete, tendrá un enlace simbólico, por lo que no debería haber necesidad de actualizar. Si tiene un sistema operativo que no admite enlaces simbólicos, creo que tendrá que seguir actualizando o reinstalando activos (de hecho, siempre utilicé assets:install , no sabía que había una opción de actualización: P).

Con respecto a la configuración, generalmente pongo todos los css, js, imágenes y cualquier recurso público dentro de un paquete si se usa solo dentro del paquete, y lo coloco en la carpeta pública si es usado por muchos paquetes, o planeo usarlo en otros paquetes.