5

抱歉,如果这个问题应该出现在 Server Vault 中。我真的不知道这是编程错误还是服务器配置错误。

我最近将我的 git 提交推送到实时服务器,我注意到一些非常令人沮丧的事情。

不管我怎么编辑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')),
)

命名的 URLorder_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

4

1 回答 1

16

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

所以我清除了浏览器的缓存,一切正常。301当我并没有真正理解和那之间的区别时,很难知道在哪里寻找错误302。我也意识到,因为我RedirectView基本上是一个占位符,直到我写一个真正的家庭模板。我应该使用permanent=False总是创建一个302. 查看文档以了解详细信息。

于 2012-05-09T10:15:15.480 回答