2009-11-05 8 views
24

Me gustaría agrupar css y javascript. También deseo enviar encabezados de expiración de futuro lejano a los clientes, por lo que necesito el control de versiones de archivos.Gestores de activos para Django: ¿cuál elegir?

Una búsqueda rápida a través de Internet ha demostrado que hay varios administradores de activos desarrollados para Django. He aquí una lista de los que podía llegar:

  1. django-compress
  2. django-assets
  3. django-assetpackager
  4. django-media-bundler
  5. django-mediacat
  6. django-site-assets
  7. django-static-management
  8. django-compressor

Parecen realizar más o menos el mismo trabajo. django-compress, django-compressor y django-site-assets parecen ser especialmente prometedores a primera vista. Apreciaré si alguien proporciona comentarios sobre cualquiera de ellos que me ayudará a elegir entre ellos.

+0

Si quiere ser exhaustivo, también puede incluir django-compressor. http://github.com/mintchaos/django_compressor –

+0

Actualizada la lista, gracias. – shanyu

+0

En 2011, los 3 mejores han cambiado significativamente. Creo que, djangoplugables.com tiene una buena tabla de características –

Respuesta

1

Entre los contendientes que he elegido django-compressor porque es increíblemente fácil de usar. Simplemente ponga una o dos etiquetas (escenario típico: uno para css y otro para js) en la plantilla y para la mayoría de los casos estará listo sin modificar nada; ni siquiera tiene que declarar o modificar la configuración, su configuración predeterminada es buena.

11

Como ya habrás notado, todos hacen lo mismo (más o menos). Decidí seguir adelante con django_compressor.

Además, prefiero establecer encabezados de caducidad o se aplican sobre la marcha de compresión a nivel de servidor web . En mi humilde opinión, estas operaciones no deben ser realizadas por la aplicación, ya que a veces puede ocasionar algunos problemas, por ejemplo, Cache-Control o encabezados de caducidad en páginas de error, etc. El módulo mod_expires es muy easy to configure según sus necesidades. Para la compresión sobre la marcha usando el filtro de salida DEFLATE, he usado este mod_deflate configuration como está.

+0

Gracias por los comentarios. Seguí tu elección y puedo decir que django-compressor es increíblemente fácil de usar. Con respecto al otro problema que mencionaste, ya he estado configurando los encabezados de expiración y las imágenes gzip a nivel del servidor web (lighttpd es la opción), solo agregaré css y js a los tipos de archivos. – shanyu

+1

Gzip imágenes es una mala mala idea. En el mejor de los casos, solo aumenta la carga del servidor, o peor aún, puede aumentar el tamaño del archivo de imagen. – adamJLev

4

He estado usando django-compress y estoy contento con él, 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 su prioridad es muy baja.

También quisiera señalar que django-media-bundler tiene una característica que los demás no ... creación automática de sprites de imágenes. No lo he usado en vivo, así que no estoy seguro de qué tan bien se implemente, pero eso es bastante claro. Puede usarlo solo para los sprites y dejar css/js para uno de los otros compresores.

+0

Gracias por la respuesta. Mi lista de cosas por hacer incluye usar sprites de css, y puedo darle una oportunidad a django-media-bundler cuando llegue el momento. Pero por el momento me he enamorado de la simplicidad de django-compressor;) – shanyu

7

Se han creado nuevos proyectos desde que se hizo esta pregunta.

Es posible que desee echar un vistazo a django-pipeline, es bastante ingenioso.

+0

Gracias por actualizar este hilo SO. django_compressor/"Compressor" w/django 1.4 ha sido una pesadilla. –

+0

es muy agradable y también tiene soporte python3 – Azd325

2

FWIW ya que djangopluggables.com ya no existe y nadie lo ha mencionado aquí: La comparación más reciente es el djangopackages.com, donde django_compressor es el cajero automático más usado. No lo he probado con 1.4, como advirtió Jay Taylor en su comment.

Cuestiones relacionadas