Re: twisted.web with dynamic + static content

Jeff Grimmett <[email protected]>
Newsgroups gmane.comp.python.twisted
Message-ID <CA+1iZEcq7siJiAVD08B5vz-UygZzViUZQ_0koFUj+kXAAvf9vA@mail.gmail.com>
Tried that, I get a big

No Such Resource

No such child resource.
back.  Watching it in FF's development panel, I see a 404 come back for /.
/static doesn't get served at all, of course.

This, however, DID work.

class tServer(Resource):
    isLeaf = False

    def getChild(self, path, request):
        print('You know what you doing.')

        if path == b'':
            print("Rendering /")
            return self

        return Resource.getChild(self, path, request)

    def render_GET(self, request):
        return bytes(content, "utf-8")

(ignore my printf debugging plz)

So, Thanks! :)

Regards,

Jeff


On Tue, Oct 30, 2018 at 6:42 PM Donal McMullan <[email protected]>
wrote:

> Try replacing:
> isLeaf = True
> with
> isLeaf = False
>
>
> On Tue, 30 Oct 2018 at 21:32, Jeff Grimmett <[email protected]> wrote:
>
>> 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
>>
> _______________________________________________
> Twisted-Python mailing list
> [email protected]
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>

_______________________________________________
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.