Django在URL中匹配点时的异常行为
如果我有以下的URL配置:
urlpatterns = patterns('',
url(r'^projects-json$', 'projects.views.list'),
)
当我访问 /projects-json
时,URL能正常解析。注意,这里没有结尾的斜杠。
但是我想在URL中使用点,而不是连字符,所以我把URL配置改成了这样:
urlpatterns = patterns('',
url(r'^projects\.json$', 'projects.views.list'),
)
现在,当我访问 /projects.json
时,它会重定向到 /projects.json/
,结果是出现404错误!如果我在URL模式中加上结尾的斜杠,那么访问带斜杠的URL就会正常。但我只想要一件简单的事情:直接匹配 /projects.json
,不想有任何重定向和斜杠。Django能做到这一点吗?我为这个简单的问题浪费了太多时间。有没有人能发现我的错误?
settings.APPEND_SLASH = False
。不过看起来这并没有什么用。以防万一,这可能有影响:
MEDIA_ROOT = ''
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin-media/'
1 个回答
5
对我来说一切正常(设置了 APPEND_SLASH = False
)。可能是浏览器的问题,有些浏览器(比如Firefox)会缓存重定向,所以即使服务器上没有重定向,它还是会把你重定向过去。你可以试试换个浏览器。