抱歉,这个问题应该在Server Vault中。我真的无法分辨这是编程错误还是服务器配置错误。

我最近将git commits推送到了实时服务器,并且发现一些非常令人沮丧的事情。

无论我如何编辑urls.py,我似乎都无法更新RedirectView!

这是我的根mysite/urls.py

urlpatterns = patterns('',
    url(r'^$', RedirectView.as_view(url=reverse_lazy('order_list')), name='home'),
    url(r'^doors/', include('doors.urls')),
    url(r'^accounts/', include('registration.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^{}/'.format(settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
)

命名的URL order_list来自我的应用程序的urls.py之一
urlpatterns = patterns('doors.views',
    url(r'^order/$', OrderListView.as_view(), name='order_list'),
    # And more URL patterns...
)

因此,基本上,我在上一次提交中只是将r'^orders/$'更改为r'^order/$'。但是,每当我执行{% url home %}时,我都注意到服务器不断尝试将其重定向到/doors/orders/路径,而不是/doors/order/。我还注意到重定向是301 Moved Permanently

因此,我尝试将permenant=False添加到RedirectView并重新启动服务器。但是它仍然转到/doors/orders/,重定向仍然是301(应该是302)!

为什么我的RedirectView不重定向到更新的URL?

服务器信息

在Gentoo Linux上将mod_wsgi与Django 1.4一起使用Apache 2.2.21

最佳答案

原来,301重定向已缓存在浏览器上!

因此,我清除了浏览器的缓存,一切正常。当我不太了解301302之间的区别时,很难知道在哪里寻找错误。我还意识到,由于我的RedirectView本质上是一个占位符,直到我编写一个真正的家庭模板为止。我应该使用permanent=False始终创建一个302。查看docs以获得详细信息。

关于django - 我无法更新Django的RedirectView。它一直引用状态为“301已永久移动”的旧URL。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10513470/

10-11 21:39