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

nkr*_*rkv 2 python django django-urls

如果我有以下url conf:

urlpatterns = patterns('',
    url(r'^projects-json$', 'projects.views.list'),
)
Run Code Online (Sandbox Code Playgroud)

我去/projects-jsonURL解析很好.请注意,没有斜杠.

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

urlpatterns = patterns('',
    url(r'^projects\.json$', 'projects.views.list'),
)
Run Code Online (Sandbox Code Playgroud)

现在,如果我去,/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/'
Run Code Online (Sandbox Code Playgroud)

DrT*_*rsa 5

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