[Twisted-Python] twisted.web with dynamic + static content
Jeff Grimmett
grimmtooth at gmail.com
Tue Oct 30 15:31:27 MDT 2018
I'm sure I'm overlooking something obvious here but I just can't get my
head around it.
Here's the setup: twisted.web server that generates dynamic content. Child
that serves up static content, e.g. css and favoicon. However, the static
content isn't making it. Instead, any hit to localhost/static actually
yields up a copy of / again.
Here's the server code
import sys
from twisted.internet import reactor, endpoints
from twisted.web import server
from twisted.web.resource import Resource
from twisted.web.static import File
sys.path.append('lib')
content = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="/static/test.css" type="text/css" />
</head>
<body>
<span class='twistedTest'>This</span> is a test
</body>
</html>
"""
class tServer(Resource):
isLeaf = True
def render_GET(self, request):
return bytes(content, "utf-8")
if __name__ == "__main__":
root = tServer()
root.putChild(b"static", File("static"))
site = server.Site(root)
endpoint = endpoints.TCP4ServerEndpoint(reactor, 8080)
endpoint.listen(site)
reactor.run()
print("Shutting down!")
It's run with the command 'python tserver.py'. The expectation is that
what is inside the custom <span> will be red.
In the same dir as the script is a subdir 'static' with the css file inside
it.
If I replace 'root' with root = Resource() then / doesn't serve up
anything, but /static is a directory listing of the static directory.
The dynamic server is basically a copy of several tutorials cooked down to
something that I could use to demonstrate the problem.
What am I missing here? /headscratch
Regards,
Jeff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20181030/a3935856/attachment.html>
More information about the Twisted-Python
mailing list