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 上の Django 1.4 で mod_wsgi を使用して Apache 2.2.21 を実行する

4

1 に答える 1

16

リダイレクトがブラウザ301にキャッシュされていることが判明しました!

それで、ブラウザのキャッシュをクリアすると、すべてが機能しました。301との違いがよくわからないときは、どこでエラーを探すのが大変でした302RedirectViewまた、実際のホーム テンプレートを作成するまでは、my は基本的にプレースホルダーであることにも気付きました。permanent=Falseを常に作成するために使用する必要があります302。詳細については、ドキュメントを参照してください。

于 2012-05-09T10:15:15.480 に答える