2009-02-03 29 views
1

我在写一个基本的Django应用程序。为了测试/开发目的,我试图使用Django的开发服务器按照http://docs.djangoproject.com/en/dev/howto/static-files/#howto-static-files提供网站的静态内容。为什么Django只提供包含空格的文件?

我的urls.py包含:

(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}) 

但是,当我试图访问一个文件,如http://localhost:8000/static/images/Logo.jpg Django的给了我一个404错误,声称“否Page指定的查询相匹配。”

当我尝试访问诸如http://localhost:8000/static/images/Blah%20Logo.jpg的文件时,它会提供文件!

发生了什么事?

回答

10

您错误的图案顺序在urls.py

当您尝试检索路径没有空间它匹配:

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

static.serve,当然你有没有这样的页面,但是当你试图用空间访问路径它匹配合适static.serve模式,因为它更通用并且允许空格。

要解决这个问题,只需交换这些模式。

+0

显然!非常感谢! – fluffels 2009-02-04 07:29:49