在URL中匹配点时奇怪的Django行为

时间:2012-02-14 13:36:19

标签: python django django-urls

如果我有以下网址:

urlpatterns = patterns('',
    url(r'^projects-json$', 'projects.views.list'),
)

我转到/projects-json网址解析得很好。请注意,没有斜杠。

但是我想要一个点,而不是URL中的连字符,所以我用这种方式重写了url conf:

urlpatterns = patterns('',
    url(r'^projects\.json$', 'projects.views.list'),
)

现在,如果我转到/projects.json,我会被重定向到/projects.json/并获得404作为后果!如果我在url模式中添加一个尾部斜杠,我将在带有尾部斜杠的URL处获得OK响应。但我只想要一个简单的事情:匹配/projects.json而没有任何重定向和斜线。 Django可以这样做吗?我已经失去了很多时间来解决这个原始问题。有人能发现错误吗?

settings.APPEND_SLASH = False。但看起来没关系。万一它可能很重要:

MEDIA_ROOT = ''
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin-media/'

1 个答案:

答案 0 :(得分:5)

适用于我(使用APPEND_SLASH = False)。它可能是浏览器问题,某些浏览器(例如Firefox)缓存重定向,因此它会在服务器上没有重定向后重定向您。在另一个浏览器中尝试。