Hello,

You can serve statics files with webpy

#!/usr/bin/python
# -*- coding: utf-8 -*-

import web

urls = (
        '/(js|css|img)/(.*)', 'static',
        '/', 'home',
        )

app = web.application(urls, globals(), autoreload=False)
application = app.wsgifunc()

class home:
    def GET(self):
        return "hello"

class static:
    def GET(self, media, file):
        try:
            f = open(media+'/'+file, 'r')
            return f.read()
        except:
            return '' # you can send an 404 error here if you want

--
Kasey

Le 27 sept. 2011 à 23:00, Lucas Doyle a écrit :

> Hello,
> 
> I'm having quite a bit of trouble coaxing the built in wsgi server in
> webpy to host static files while daemonized. My goal here is to have a
> local (daemonized) webserver I can dev on while being able to push to
> my production server running mod_wsgi. So far webpy has been great in
> that capacity, however now that I have my "hello world" working the
> way I want locally and remotely, I can't serve static files.
> 
> I'm using this technique to daemonize:
> http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/
> 
> According to webpy, all I have to do is make a directory called
> 'static' in the same spot as my application code, and it will serve
> them statically. When I so this and run the code below, I get 404
> pages for my static files. I suspect the problem might be something to
> do with threading and/or me not subclassing correctly, but I have not
> been able to figure it out.
> 
> The code I'm trying to run is this:
> 
> 
> #!/usr/bin/env python
> import sys, time, os
> import web
> from daemon import Daemon
> 
> urls = (
>    '/', 'hello'
> )
> 
> class hello:
>    def GET(self):
>        return "Hello, world!"
> 
> class server(Daemon):
>    def run(self):
>        app = web.application(urls, globals(), autoreload=True)
>        app.internalerror = web.debugerror
>        app.run()
> 
> if __name__ == "__main__":
>    if len(sys.argv) == 2:
>        daemon = server('/home/ld/ABS/server.pid') # make the pidfile
> appear here
>        if 'start' == sys.argv[1]:
>            print "starting local webserver"
>            # need to overwrite argv[1] so webpy gets the right port
> number
>            sys.argv[1] = '8080'
>            daemon.start()
>        elif 'stop' == sys.argv[1]:
>            print "stopping local webserver"
>            daemon.stop()
>        elif 'restart' == sys.argv[1]:
>            print "restarting local webserver"
>            daemon.restart()
>        else:
>            print "Unknown command"
>            sys.exit(2)
>        sys.exit(0)
>    else:
>        print "usage: %s start|stop|restart" % sys.argv[0]
>        sys.exit(2)
> 
> # mod_wsgi will catch this instance of the wsgi application
> app = web.application(urls, globals(), autoreload=False)
> application = app.wsgifunc()
> 
> 
> 
> Thanks for your help!
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "web.py" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/webpy?hl=en.
> 

Attachment: PGP.sig
Description: Ceci est une signature électronique PGP

Reply via email to