我正在我的 Pylons 应用程序中构建路线表。我无法让 redirect() 以应有的方式工作。我不确定我做错了什么。
以下是Routes 文档中的 redirect() 用法示例:
map.redirect("/home/index", "/", _redirect_code="301 Moved Permanently")
这是我的 routing.py 文件中显示的内容:
map.redirect("/view", "/", _redirect_code="301 Moved Permanently")
这是一个使用 redirect() 的路由,它出现在我的 routing.py 文件的末尾:
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'])
该路由也可以正常工作,并且我在前面的 routing.py 中列出了它,以便它在尝试匹配 /view[GET] 路由之前尝试匹配该路由。