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.
>
PGP.sig
Description: Ceci est une signature électronique PGP
