如果我有以下网址配置:
urlpatterns = patterns('',
url(r'^projects-json$', 'projects.views.list'),
)
我转到 /projects-json
URL 解析得很好。请注意,末尾没有斜杠。
但是我想在 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/'
最佳答案
对我来说效果很好(APPEND_SLASH = False
)。可能是浏览器问题,某些浏览器(例如Firefox)缓存了重定向,因此在服务器上根本没有重定向后它会重定向您。在其他浏览器中尝试一下。
关于python - 匹配 URL 中的点时出现奇怪的 Django 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277818/