没有这样的资源404错误

时间:2014-04-08 07:06:46

标签: python html twisted.web

我想运行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()

2 个答案:

答案 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