twisted.web with dynamic + static content

Jeff Grimmett <[email protected]>
Newsgroups gmane.comp.python.twisted
Message-ID <CA+1iZEdO+AqawwfLs73V_bE426LoUUWuZ636cGPm+v3-pV1qOw@mail.gmail.com>
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

_______________________________________________
Twisted-Python mailing list
[email protected]
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.