【发布时间】:2014-09-15 19:03:54
【问题描述】:
我想确保以下两个 url 以相同的方式处理(有一个现有的客户端以这种方式发送请求):
/resource
//resource
很遗憾,我无法将两个 url 添加到同一路由,即使我尝试使用 //resource 格式,url 匹配在这种情况下也无法正常工作。
有什么办法可以解决这个问题,这样我就不必在 WSGI 前面的服务器中重写请求了?
编辑:我确实找到了允许我访问 NewRequest 事件的pyramid.event,所以我想我可以重写路径,但是由于有许多不同的函数以各种方式获取路径,我不确定如何我到底应该在现有请求中重写它。
edit2:整个事件似乎不再有关于//resource 的信息——我查询的任何元素都没有显示它。一切都声称我只收到了/ 的请求。
edit3:它似乎实际上与粘贴或介于两者之间的其他模块有关,而不是 Pyramid 本身 - uwsgi 使用双斜杠传递原始 path_info 没有任何问题。
【问题讨论】:
-
这里只是一个想法。您可以创建一个中间件,在将 PATH_INFO 变量传递给金字塔之前对其进行修改
-
顺便说一句,您似乎在女服务员中发现了一个错误。双斜杠显然去除了第一个路径部分
//something/fun被转换为/fun,虽然使用三斜杠给了我正确的结果
标签: python url-routing pyramid