我想运行index.html。所以当我键入localhost:8080时,index.html应该在浏览器中执行。但它没有提供这样的资源。我指定index.html的整个路径。请帮帮我。??
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.static import File
resource = File('/home/venky/python/twistedPython/index.html')
factory = Site(resource)
reactor.listenTCP(8000, factory)
reactor.run()
答案 0 :(得分:4)
根据this support ticket,答案是在调用bytes()
时使用putChild()
个对象。在原帖中,请尝试:
resource = File(b'/home/venky/python/twistedPython/index.html')
在第一个答案中,尝试:
resource = File(b'/home/venky/python/twistedPython/index.html')
resource.putChild(b'', resource)
答案 1 :(得分:1)
这与以斜杠结尾的URL与没有斜杠的URL之间的差异有关。似乎Twisted认为顶层的URL(如http://localhost:8000
)包含隐式尾部斜杠(http://localhost:8000/
)。这意味着URL路径包含空段。 Twisted然后在resource
中查找名为''
的子项(空字符串)。要使其工作,请将该名称添加为子项:
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.static import File
resource = File('/home/venky/python/twistedPython/index.html')
resource.putChild('', resource)
factory = Site(resource)
reactor.listenTCP(8000, factory)
reactor.run()
此外,您的问题有端口8080
,但您的代码有8000
。