Skip to main content
 首页 » 编程设计

python之为什么 Django 只提供包含空格的文件

2025年05月04日30xxx_UU

我正在编写一个基本的 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 模式,因为它更通用并且允许空格。

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