我正在编写一个基本的 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 错误,声称“没有页面匹配给定的查询。”
当我尝试访问诸如 http://localhost:8000/static/images/Blah%20Logo.jpg 之类的文件时它提供文件!
这是怎么回事?
请您参考如下方法:
您在 urls.py 中的模式顺序错误。
当您尝试检索不带空格的路径时,它匹配:
(r'^(?P<page_name>\S*)$', 'Blah.content.views.index'),
不是 static.serve 当然你没有这样的页面,但是当你尝试访问路径 with 空格时它匹配正确的 static.serve 模式,因为它更通用并且允许空格。
要解决这个问题,只需交换这些模式即可。
