2009-02-03 8 views
1

J'écris une application Django de base. À des fins de test/développement, j'essaie de servir le contenu statique du site Web en utilisant le serveur de développement de Django, conformément au http://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files.Pourquoi Django ne sert que des fichiers contenant un espace?

Mon urls.py contient:

(r'^admin/(.*)', admin.site.root), 

    (r'^(?P<page_name>\S*)$', 'Blah.content.views.index'), 

    (r'^static/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': 'C:/Users/My User/workspace/Blah/media', 
     'show_indexes': True}) 

Cependant, lorsque je tente d'accéder à un fichier tel que http://localhost:8000/static/images/Logo.jpg Django me donne une erreur 404 affirmant que « Non Page correspond à la requête donnée. »

Lorsque j'essaie d'accéder à un fichier tel que http://localhost:8000/static/images/Blah%20Logo.jpg il sert le fichier!

Que se passe-t-il?

Répondre

10

Vous avez des ordres de mauvais modèles dans urls.py.

Lorsque vous essayez de récupérer chemin sans l'espace, il correspond:

(r'^(?P<page_name>\S*)$', 'Blah.content.views.index'), 

pas static.serve et bien sûr vous n'avez pas cette page, mais lorsque vous essayez d'accéder chemin avec l'espace il correspond à une bonne static.serve motif car il est plus générique et permet des espaces.

Pour résoudre ce problème, il suffit d'échanger ces motifs.

+0

Évidemment! Merci beaucoup! – fluffels

Questions connexes