online - django projects
Gestores de activos para Django-elegir cuál? (5)
Me gustaría empaquetar archivos css y javascript. También quiero enviar encabezados de caducidad a futuros clientes, por lo que necesito la versión del archivo.
Una búsqueda rápida en Internet ha demostrado que hay varios administradores de activos desarrollados para Django. Aquí está una lista de los que podría alcanzar:
- django-compress
- django-assets
- django-assetpackager
- django-media-bundler
- django-mediacat
- django-site-assets
- django-static-management
- django-compressor
Parecen realizar más o menos el mismo trabajo. django-compress, django-compressor y django-site-asset parecen ser especialmente prometedores a primera vista. Apreciaré si alguien proporciona comentarios sobre alguno de ellos que me ayude a elegir entre ellos.
Como ya has notado, todos hacen lo mismo (más o menos). Decidí seguir adelante con django_compressor .
Además, prefiero establecer los encabezados de caducidad o aplicar la compresión sobre la marcha en el nivel del servidor web . En mi humilde opinión, estas operaciones no deben ser realizadas por la propia aplicación, ya que a veces puede dar lugar a algunos problemas, por ejemplo, configurar el control de caché o los encabezados de caducidad en las páginas de error, etc. El módulo mod_expires es muy fácil de configurar de acuerdo con sus necesidades. Para la compresión sobre la marcha usando el filtro de salida DEFLATE, he usado esta configuración mod_deflate como está.
Entre los contendientes he elegido django-compressor porque es increíblemente fácil de usar. Simplemente coloque una o dos etiquetas (escenario típico: una para css y otra para js) en la plantilla y, en la mayoría de los casos, habrá terminado sin modificar nada; ni siquiera tiene que declarar o modificar la configuración, su configuración predeterminada es buena.
FWIW ya que djangopluggables.com ya no existe y nadie lo ha mencionado aquí todavía: la comparación más reciente se encuentra en djangopackages.com , donde django_compressor es el cajero automático más utilizado. No lo he intentado con 1.4, aunque Jay Taylor advirtió en su comment .
He estado usando django-compress y estoy contento con eso, especialmente porque puedo especificar el compresor de back-end (YUI funciona mejor con mi JS, por ejemplo).
Probablemente consideraré cambiar a django_compressor en el futuro, pero es un cajero automático de prioridad demasiado baja.
También me gustaría señalar que django-media-bundler tiene una característica que las otras no ... la creación automática de sprites de imagen. No lo he usado en vivo, así que no estoy seguro de lo bien que está implementado, pero eso es bastante bueno. Puede usarlo solo para los sprites y dejar css / js para uno de los otros compresores.
Se han creado nuevos proyectos desde que se hizo esta pregunta.
Es posible que desee echar un vistazo a django-pipeline , es bastante ingenioso.