2012-02-14 59 views
2

匹配点。如果我有以下网址的conf:奇Django的行为,而在URL

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作为consequense!如果我在url模式中添加一个尾部斜线,我将在URL上使用尾部斜线得到OK响应。但我只想要一件简单的事情:匹配/projects.json而不用任何重定向和斜线。 Django能做到这一点吗?我已经为这个原始问题失去了很多时间。任何人都可以发现错误?

settings.APPEND_SLASH = False。不过看起来并不重要。以防万一它可能很重要:

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

适合我的作品(带'APPEND_SLASH = False')。它可能是浏览器问题,某些浏览器(例如Firefox)缓存重定向,因此在服务器根本没有重定向之后它会重定向您。在另一个浏览器中尝试。你如何设置'APPEND_SLASH'?在'settings.py'中? – DrTyrsa 2012-02-14 13:56:26

+0

Omg!这是真的!重定向缓存在Firefox中。请你可以发表你的评论作为回复。我会接受它。 – nkrkv 2012-02-14 14:04:37

回答

5

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

+0

我认为你可以通过清除缓存来解决这个问题。我必须在上周做,但特别是忘了我做了什么...... – 2012-02-14 14:10:33

+1

它绝对是一个缓存问题。 – 2012-02-14 14:32:51