升级升级-现在无法访问网站路径

时间:2018-08-18 05:46:08

标签: python-3.x twisted twisted.web

我在Python2.6和Twisted 15.0.0上运行:

from twisted.python import usage
from twisted.web import resource, server, static
from twisted.application import internet

class Options(usage.Options):
    optParameters = [
                 ]

def makeService(options):
    # this variation works
    root_resource = static.File('/tmp')

    # this variation doesn't
    root_resource = resource.Resource()
    root_resource.putChild("here", static.File('/tmp'))

    site = server.Site(root_resource)
    web_svc = internet.TCPServer(8000, site)

    return web_svc

但是升级到Python3.7并更新到最新版本(18.7.0)之后,我http://localhost:8000/here一无所获

  

没有这样的资源

     

没有此类子资源。

找不到任何表达不同方式的扭曲文档或示例。

其他:

它可以正常启动服务,否则我看不到上面的内容。

出于复制目的, twisted / plugins / my_plugin.py 如下:

from twisted.application.service import ServiceMaker

svc = ServiceMaker("TEST_ONE",
               "svc",
               "Service",
               "tstsvc"
               )

并执行:

twist tstsvc

1 个答案:

答案 0 :(得分:0)

神秘感解决了。

当然,这里再次是带有字符串处理功能的Python3。

root_resource.putChild(b"here", static.File('/tmp'))

在路径前面没有'b'的情况下,它从未匹配所键入的url。

思想:如果在此处传递了str,则putChild()api是否应该引发错误?似乎字节永远是正确的答案,并且是唯一可以匹配的东西