2016-07-14 1 views
1

Cela correspond aux fichiers multimédia correctement:Django ne pas servir les fichiers multimédias si je vérifie pour settings.DEBUG

urlpatterns = [ 
... 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

Cela ne sert pas les fichiers médias:

from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = [ ... ] 

if settings.DEBUG: 
    urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

Le documentation écrit: « Cette n'est pas adapté pour une utilisation en production! ", c'est pourquoi j'ai besoin d'un moyen de vérifier DEBUG avant de servir les fichiers multimédias. Comment puis je faire ça. Pourquoi cette approche ne fonctionne pas?

+1

serveur de développement est en cours d'exécution dans un ou deux threads, donc thruput est très limité, donc vous demandez sont servis un par un - lentement, plus chaque fichier statique est servi en utilisant les opérations de base open-read-send-close, sans aucun avantage os (par exemple sendfile, zéro -copy) - vérifiez uwsgi - il est assez robuste et fonctionne bien avec django – Jerzyk

Répondre

4

Utilisez

if settings.DEBUG: 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

(avis « = » après « + » - dans la version que vous ajoutez static() modèles mais ne pas attribuer le résultat à la variable urlpatterns)

+0

Vrai, quelle erreur évidente. Merci mec. – alejoss