7
votes

Django: Comment puis-je servir gzip staticfiles est-il servi en mode DEV?

Mes paramètres django.contrib.staticFiles semble être ok car tous les fichiers statiques sont servis comme prévu. Cependant, par exemple. /STICTIC/*.CSS Les fichiers ne sont pas gzippés, bien que je n'ai que gzipmiddleware est activé.

fyi. My Views HTML obtient réellement gzipped, seuls les fichiers desservés par l'application StaticFiles ne font pas. Semble que ces réponses ne traversent pas la chaîne middleware?


0 commentaires

4 Réponses :


2
votes

est-il possible de ne pas avoir le Gzipmiddleware en haut de votre paramètres.middleware_classes code>? Cela pourrait causer un comportement étrange.

S'il s'agit d'un serveur de production, cependant, vous ne devriez probablement pas servir des fichiers statiques avec Django du tout. Je recommanderais guncorn et nginx. P>

Edit: Si non que si vous servez les fichiers "manuellement" via urls.py, en utilisant quelque chose comme: p>

urlpatterns += staticfiles_urlpatterns() + \
        patterns('',
            (r'^%s/(?P<path>.*)$' % settings.MEDIA_URL.strip('/'), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
            *[(r'^%s/(?P<path>.*)$' % settings.STATIC_URL.strip('/'), 'django.views.static.serve', {'document_root': path, 'show_indexes': True}) for path in settings.STATICFILES_DIRS]
        )


3 commentaires

Oui, gzipmiddleware est en haut. Non, comme je l'ai écrit dans le sujet, ma question concerne le mode DEV. En production, j'utilise également Nginx et j'ai une compression, etc., faites-la. Maintenant, je suis également intéressé à voir l'Aproximate Files pour les actifs statiques tout en développant.


@Carsten, vous voudrez peut-être mentionner aussi «Dev Mode» dans le contenu de la question ... Parce que cela me prenait totalement 30 secondes après avoir lu ce commentaire pour le trouver :) Je suppose que certains d'entre nous ne lisent pas les titres après avoir cliqué sur eux!


@Carsten, j'ai ajouté deux autres choses que vous pourriez essayer.



0
votes

Dans l'environnement de production Votre serveur Web (Apache / Nginx / IIS) s'occupe de la gzipping statique, alors ne comporte pas si GZIP fonctionne dans Dev ou non.


1 commentaires

Eh bien, cela compte pour moi, donc j'ai écrit la question (avec «Dev Mode» dans le sujet). )



7
votes

L'astuce consiste à faire fonctionner le serveur de développement avec l'ensemble de drapeau "-Nostatic ''": ./ manage.py runserver --Nostatic .

On peut alors utiliser un motif d'URL pour Servir les fichiers statiques, comme: xxx

Lorsqu'il est exécuté sans --Nostatique, Django servira automatiquement les choses sous static_url sans passer à travers la chaîne middleware.

Merci à Dave pour ses pointeurs!


1 commentaires

Bonne réponse. Comment cette fonctionnalité peut-elle être rejetée par Django en amont.



0
votes

additionnel pour la réponse de Carsten https://stackoverflow.com/a/7673706/8137384

Les versions modernes contiennent L'aide: xxx


0 commentaires