2012-05-05 1 views
0

Je sais qu'il vaut mieux utiliser quelque chose comme AWS pour les fichiers statiques mais je suis en développement et je préfère avoir les fichiers javascript/css sur localhost.Gzip sur les fichiers js/css sur Django

Ce serait génial si je pouvais faire fonctionner gzip sur mes fichiers javascript pour les tests. J'utilise le middleware gzip par défaut mais il ne fait que compresser la requête de vue.

Mon modèle ressemble:

<script src='file.js' type='application/javascript'></script> 

Il devrait y avoir une liste type de fichier similaire à Nginx pour le serveur à base de django. Comment puis-je ajouter une application/javascript, un texte/javascript, etc. pour la compression gzip?

+0

Regardez http://stackoverflow.com/questions/7576449/django-how-can-i-gzip-staticfiles-served-in-dev-mode –

+0

Merci @RetoAebersold! Je l'ai fait et ça marche maintenant – frank

Répondre

2

Vous devriez lire la documentation GZipMiddleware, où il est expliqué que le middleware ne compresse pas les réponses lorsque la « tête Content-Type contient javascript ou commence avec autre chose que du texte/».

EDIT:

Pour clarifier ce que dit la documentation, si la valeur d'en-tête Content-Type contient javascript ou ne commence pas par text/, la réponse ne sera pas compressé. Cela signifie que les deux text/javascript et application/javascript seront des réponses invalides, puisqu'elles correspondent à javascript. Ces restrictions sont intentionnellement imposées par le middleware lui-même, mais vous pouvez toujours contourner cela en enveloppant le gestionnaire d'affichage des fichiers statiques avec le décorateur gzip_page() et en l'ajoutant manuellement à votre configuration d'URL.

+0

J'ai essayé avec le texte/javascript et cela ne fonctionne pas – frank

+0

@frank J'ai mis à jour la réponse avec quelques éclaircissements sur ce que les docs disent et comment vous pouvez contourner la restriction de compression de réponse avec la solution suggérée former les docs. –

+0

Merci. J'ai suivi ces instructions: http://stackoverflow.com/questions/7576449/django-how-can-i-gzip-staticfiles-served-in-dev-mode – frank

0

Au cours du développement que vous utilisez Django serveur web intégré, ce serveur est vraiment simple et n'a pas d'autres options que ce que vous pouvez voir avec ./manage.py help runserver

options Vous êtes soit d'installer un vrai serveur web ou l'utilisation l'application staticfiles avec une coutume StaticFilesStorage

Mais honnêtement, c'est exagéré, pourquoi voudrait tester la compression gzip?

+0

J'ai besoin de télécharger de gros fichiers en quelques secondes. – frank

+0

peut être ce que vous pouvez faire alors est de contourner tout serveur web et dire au navigateur d'accéder directement à vos fichiers statiques en définissant le STATIC_URL pour pointer vers votre dossier statique à travers le système de fichiers, c'est le plus vite possible. –

Questions connexes