Pylons アプリでルートのテーブルを作成しています。redirect() を正常に動作させることができません。何が間違っているのかわかりません。
Routes documentationからの redirect() の使用例を次に示します。
map.redirect("/home/index", "/", _redirect_code="301 Moved Permanently")
これが私のrouting.pyファイルに表示されるものです:
map.redirect("/view", "/", _redirect_code="301 Moved Permanently")
これは、routing.py ファイルの最後に表示される redirect() を使用したルートです。
map.redirect('/*(url)/', '/{url}', _redirect_code="301 Moved Permanently")
このルートは問題なく機能するため、redirect() が存在し、機能していることはわかっています。したがって、/view リダイレクトで何か間違ったことをしています。ブラウザで /view を指定すると、リダイレクトされずに 404 ページが表示されるため、これはわかっています。/ に行くと問題なく動作するので、そこにも問題はないと思います。Routes の redirect() は素晴らしいアイデアだと思います。意図したとおりに使用できるようにしたいと考えていますが、ここで何が間違っているのかわかりません。
ETA @jasonjs: 他に一致するルートはないと思います。/view にアクセスして Paster の出力を確認すると、次のような結果が得られます。
21:22:26,276 DEBUG [routes.middleware] No route matched for GET /view
これは私にはかなり決定的なようです。/view への POST リクエストに一致するルートがあることに注意してください。
map.connect('/view', controller='view', action='search', conditions=dict(method=['POST'])
そのルートも正しく機能し、 /view[GET] ルートとの一致を試みる前にそれとの一致を試みるように、以前に routing.py にリストしました。