2010-06-17 24 views
24

Tengo el siguiente caso: quiero utilizar archivos js/css sin comprimir durante el desarrollo (para depurar js por ejemplo) pero en producción quiero cambiar automáticamente a versiones miniaturizadas de esos archivos .Django: archivos css/js auto minifying antes de la versión

alguna solución sencilla es poner en su plantilla:

<script src="some_js.{% if not debug %}min.{% endif %}js".... 

pero esto requiere proporcionar manully que existe el fichero existe y hacer manullay minifaction después del cambio del archivo original.

¿Cómo se logra esto en sus proyectos? ¿Hay alguna herramienta para esto?

+0

https://www.djangopackages.com/grids/g/asset-managers/ –

Respuesta

17

¿Has probado http://code.google.com/p/django-compress/?

Ver http://djangopackages.com/grids/g/asset-managers/ para obtener una lista bastante completa de los gestores de activos disponibles para Django ...

Si ya está utilizando ya django-compresa, debería echar un vistazo a la actualización a django-ducto, que es una horquilla bien mantenida, con muchas características nuevas. Animo a todos a que está usando Django-compresa para cambiar a django-ducto en su lugar: * django-pipeline documentation

+0

¡Perfecto! ¡Muchas gracias! – dzida

+11

django-compress ha sido reemplazado por [django-pipeline] (http://django-pipeline.readthedocs.org/en/latest/index.html) según su [sitio] (http://code.google.com/p/django-compress /) –

+0

Esta aplicación ya no se mantiene :-( –

8

He estado usando webassets y hasta ahora estoy muy satisfecho. Lo que realmente me gusta de él es que aún puede definir sus archivos CSS y JS dentro de sus plantillas, en lugar de en la configuración del proyecto.

documentación se puede encontrar en: http://elsdoerfer.name/docs/webassets/

+0

django-assets tiene un nuevo nombre: [webassets] (https://github.com/miracle2k/webassets) –

+0

ah, yo ' he actualizado la respuesta en consecuencia – heyman

+1

Hola heyman :) mucho tiempo sin verte. ¿Sigue usando webassets? ¿Y cuál es su opinión sobre webassets vs django-pipeline? Tener dificultades para decidir. Puedo apreciar la capacidad de alineación de la plantilla, pero django-pipeline parece tener un mejor manejo de activos sin código como imágenes y archivos flash. ¿Estoy equivocado? ¿Webassets maneja estos tipos de archivos con gracia? –

0

escribí this Makefile a minify y concatenar mis JS y CSS. Depende del JAR YUI Compressor. Después de actualizar un archivo, aún así debe ejecutar make. Sin embargo, puede hacer que se ejecute cuando el servidor se inicia y/o vuelve a cargar, o configurar un commit-hook en su SCM.

Por supuesto, usted todavía necesita el {% if not debug %}, pero es un pequeño precio a pagar en la OMI.

Mostrando el uso simple: ya no se mantiene

$ make 
[css] static/css/first.css 
[css] static/css/second.css 
[css] static/css/third.css 
[css] static/css/and_so_on.css 
[tag] @import url("static/css/all.css"); 
[js] static/js/first.js 
[js] static/js/second.js 
[js] static/js/third.js 
[js] static/js/and_so_on.js 
[tag] <script type="text/javascript" src="static/js/all.js"></script> 
Done. 
-2

acaba de lanzar un proyecto de código abierto que mira directorios para los cambios y auto-JS le resta, auto-compila SASS/SCSS, dirige las operaciones de línea de comandos, etc.

Compruébelo usted mismo en http://devWatchr.com/

Se se ejecuta usando python y pyinotify en su sistema durante el desarrollo.

Cuestiones relacionadas