【发布时间】:2014-05-29 16:15:24
【问题描述】:
我有一个非常简单的带有 url 模式的 Django 项目,类似于这个:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^log/', include('apps.logging.urls')),
url(r'^OPTION1/?', index, name="index"),
url(r'^OPTION2/?', index, name="index"),
url(r'^$', index, name="index"),
url(r'^.+/?', RedirectView.as_view(url="/", permanent=False)),
)
所以本质上,我希望在 url 为 /OPTION1、/OPTION2 或 / 时呈现索引视图。我也尝试将这个逻辑放到一个正则表达式中,但我总是遇到同样的问题:
只要我在实际服务器上以生产模式工作,除了正常的之外,总是会评估 emtpy url 模式 (^$)。因此,如果有人导航到/OPTION1,索引视图实际上会调用两次,一次使用/,一次使用/OPTION1 作为路径。
一旦我注释掉空的 url 模式,一切正常。我也没有重定向(除了您在 url 模式中看到的那个,但我可以将其注释掉并且问题仍然存在),这可能导致此问题并且返回的状态代码始终为 200。
那么有人知道发生了什么吗?
【问题讨论】:
-
您确定您没有看到浏览器对 /favicon.ico 或其他内容的并行请求吗?检查您的 Apache 访问日志以确保没有并行请求。
标签: python django apache url mod-wsgi