Domanda

Ho provato profiling mia applicazione web e uno dei colli di bottiglia riportata è stata la mancanza di compressione gzip. Ho provveduto a installare il middleware gzip in Django e ottenuto un po 'di spinta, ma un nuovo rapporto mostra che è solo gzipping i file HTML vale a dire qualsiasi contenuto elaborati da Django. C'è un modo ho potuto kludge / mod / forza / rendono il middleware gzip mio CSS e JS mia come bene?

Qualcuno potrebbe rispondere alle mie domande qui sotto. Ho ottenuto un po 'perso con questo.

  • I potrebbe essersi sbagliato, ma la gente fa gzip il CSS e JS, non è vero?
  • non Django impacco JS e CSS per un po 'del browser problemi di compatibilità?
  • È compressione e minifying la stessa cosa?

Grazie.

È stato utile?

Soluzione 4

Grazie a tutti.

Sembra che il GzipMiddleware in Django Il comprimere CSS e JS.

Stavo usando plug-Page Speed ??di Google per Firebug al profilo la mia pagina e sembra che si stava generando report basati su vecchie copie (versioni non-gzip) del CSSS e JSS nella mia cache locale. Queste copie erano lì da tempo prima che ho attivato il middleware Gzip. Arrossii la cache e sembra che i rapporti hanno mostrato risultati differenti del tutto.

Altri suggerimenti

Il tuo CSS e JS dovrebbe non essere passare attraverso Django sul sistema di produzione. È necessario configurare Apache (o Nginx, o qualsiasi altra cosa) per servire questi, e quando lo fai in modo sarete in grado di impostare la compressione gzip lì, piuttosto che in Django.

E no, la compressione e minifying non sono la stessa cosa. compressione Gzip viene eseguita dinamicamente dal server quando serve la vostra richiesta, e il browser decomprime in modo trasparente il file quando si riceve. Minification è il processo di rimozione di commenti e spazi bianchi dai file, e, talvolta, concatenare più file in uno (vale a dire un css e javascript uno, al posto di un sacco di ciascuno). Questo viene fatto quando si distribuiscono i file sul server - da Django-comprimere, come suggerisce Ashok, o da qualcosa di esterno come il YUI Compressor , e il browser non tenta di ricostruire il file originale -. che sarebbe impossibile, e inutile

Si dovrebbe pensare di effettuare l'applicazione Django dietro un proxy inverso HTTP.

È possibile configurare Apache per agire come un proxy inverso per l'applicazione Django, anche se un certo numero di persone sembrano preferire utilizzando nginx o lighttpd per questo scenario.

Un HTTP proxy inverso in fondo è un proxy creato direttamente di fronte alla vostra applicazione web. I browser fanno richieste del proxy inverso, e il proxy inverso inoltra le richieste l'applicazione web. Il proxy inverso può anche fare una serie di cose interessanti come la maniglia ssl, maniglia gzip-comprimendo tutte le risposte, e la maniglia che serve file statici.

Segui il suggerimento di Daniel Roseman, "Il tuo CSS e JS non deve essere passare attraverso Django sul sistema di produzione"

Se si vuole servire attraverso Django poi è possibile comprimere CSS, file js utilizzando django-compressore , django-comprimere

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top