扭曲,如何 "putChild()" 尾部斜杠?
Twisted, how to "putChild()" with trailing slash?
我正在使用 twisted 并制作了一个网络服务器,但是当我尝试请求带有尾部斜杠的页面时,我得到了
"No Such Resource - No such child resource."
这些我都试过了
self.putChild('login', Login(self))
self.putChild('/login/', Login(self))
self.putChild('/login', Login(self))
self.putChild('login/', Login(self))
甚至尝试覆盖 'getChildWithDefault' 方法,并尝试请求带有斜线和不带斜线的页面,它总是说路径是 'login',没有斜线,所以它应该总是匹配第一个行,但不是 w.e 原因。
有人知道如何使用尾部斜杠添加子资源吗?
您不能将斜杠传递给 putChild
;它将被 URL 遍历逻辑转义,因为参数是单个路径段。
假设 Login
本身就是一个 Resource
,你可以把 本身 放到它自己上,这样 /login
和 /login/
会起作用,像这样:
l = Login(self)
l.putChild("", l)
self.putChild("login", l)
您当然可以将不带尾部斜杠的 /login
设为您自己设计的资源,或者将 twisted.web.util.Redirect
添加斜杠; assemble 您喜欢的配置中的资源 :)。
我正在使用 twisted 并制作了一个网络服务器,但是当我尝试请求带有尾部斜杠的页面时,我得到了
"No Such Resource - No such child resource."
这些我都试过了
self.putChild('login', Login(self))
self.putChild('/login/', Login(self))
self.putChild('/login', Login(self))
self.putChild('login/', Login(self))
甚至尝试覆盖 'getChildWithDefault' 方法,并尝试请求带有斜线和不带斜线的页面,它总是说路径是 'login',没有斜线,所以它应该总是匹配第一个行,但不是 w.e 原因。
有人知道如何使用尾部斜杠添加子资源吗?
您不能将斜杠传递给 putChild
;它将被 URL 遍历逻辑转义,因为参数是单个路径段。
假设 Login
本身就是一个 Resource
,你可以把 本身 放到它自己上,这样 /login
和 /login/
会起作用,像这样:
l = Login(self)
l.putChild("", l)
self.putChild("login", l)
您当然可以将不带尾部斜杠的 /login
设为您自己设计的资源,或者将 twisted.web.util.Redirect
添加斜杠; assemble 您喜欢的配置中的资源 :)。