Pregunta

He intentado perfilado mi aplicación web y uno de los cuellos de botella reportado fue la falta de compresión gzip. Procedí a instalar el middleware gzip en Django y tengo un poco de impulso, pero según un informe reciente de que sólo se gzipping los archivos HTML es decir, cualquier contenido procesado por Django. ¿Hay alguna manera de que pudiera kludge / truco / fuerza / hacer el middleware gzip mi CSS y JS mi también?

Podría alguien por favor responder a mis preguntas a continuación. He conseguido un poco perdido con esto.

  • Me podría haber conseguido equivocado, pero la gente hace gzip el CSS y JS, ¿no es así?
  • no Django compresa JS y CSS por algún navegador problemas de compatibilidad?
  • ¿Es compresión y minifying la misma cosa?

Gracias.

¿Fue útil?

Solución 4

Gracias a todos.

Parece que el GzipMiddleware en Django ¿Tiene CSS y JS compresa.

Yo estaba usando el plugin de Page Speed ??de Google para Firebug para perfilar mi página y parece que se estaba generando informes basados ??en copias antiguas (versiones no gzip) del CSSs y JSS en mi memoria caché local. Estas copias estaban allí desde el tiempo antes de que permitió a los middleware gzip. Me tiraba el caché y parece que los informes mostraron resultados diferentes por completo.

Otros consejos

Su CSS y JS debe no estar pasando por Django en su sistema de producción. Es necesario configurar Apache (o Nginx, o lo que sea) para servir a estos, y cuando lo hace por lo que será capaz de configurar la compresión gzip allí, en lugar de en Django.

Y no, la compresión y minifying no son la misma cosa. compresión gzip se realiza dinámicamente por el servidor cuando sirve a su solicitud, y el navegador abre la cremallera de forma transparente el archivo cuando lo recibe. Minificación es el proceso de eliminación de observaciones y de espacio en blanco de los archivos y, a veces la concatenación de múltiples archivos en un (es decir, una css y uno javascript, en lugar de porciones de cada uno). Esto se hace al implementar sus archivos al servidor - por django-compresa, como sugiere Ashok, o por algo externo como el YUI compresor , y el navegador no intenta reconstruir el archivo original -. que sería imposible e innecesario

Se debe pensar en la colocación de su aplicación Django detrás de un proxy inverso HTTP.

Se puede configurar Apache para actuar como un proxy inverso a su aplicación Django, aunque un número de personas que parecen preferir el uso de Nginx o lighttpd para este escenario.

Una HTTP proxy inverso, básicamente, es un proxy configurado directamente en frente de su aplicación web. Navegadores hacen peticiones del proxy inverso, y el proxy inverso reenvía las peticiones a la aplicación web. El proxy inverso también puede hacer una serie de cosas interesantes como SSL mango, mango gzip comprimiendo todas las respuestas, y el mango que sirve archivos estáticos.

Siga la sugerencia de Daniel Roseman, "Tu CSS y JS no debería estar pasando por Django en su sistema de producción"

Si desea servir a través de Django entonces usted puede comprimir archivos css, js usando django-compresor , django-compresa

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top