我使用bottle与gevent为我的python webdev实验。 我的问题是我无法提供静态文件,例如在我的模板中使用外部CSS。 我的文件夹结构为:/static/css/style.css蟒蛇 - 瓶+ gevent不能提供静态文件
我的代码:
index.py
# -*- coding: UTF-8 -*-
from gevent import monkey; monkey.patch_all() #patching default Python threads
from bottle import mount, run, debug #initializing bottle
from routes import root #importing site routes
debug(True)
run(app = root , host = '0.0.0.0' , port = 80 , server = 'gevent')
routes.py
# -*- coding: UTF-8 -*-
from bottle import *
root = Bottle()
@root.get('/static/<path:path>')
def serve_files(path):
return static_file(path , root = '/static/')
这是我的从终端回溯:
xxx.xxx.xxx.xxx - - [2011-12-22 09:36:44] "GET /static/css/style.css HTTP/1.1" 500 161 0.002867
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent-0.13.6-py2.7-linux-i686.egg/gevent/pywsgi.py", line 438, in handle_one_response
self.run_application()
File "/usr/local/lib/python2.7/dist-packages/gevent-0.13.6-py2.7-linux-i686.egg/gevent/pywsgi.py", line 424, in run_application
self.result = self.application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/dist-packages/bottle-0.10.4-py2.7.egg/bottle.py", line 849, in __call__
return self.wsgi(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/bottle-0.10.4-py2.7.egg/bottle.py", line 841, in wsgi
% (html_escape(repr(_e())), html_escape(format_exc(10)))
NameError: global name '_e' is not defined
请帮忙。
UPDATE:
我已经下载了瓶子的不稳定版(0.11版),并将其导入到我的脚本。现在有没有500错误和回溯,但style.css中给了我404
[2011-12-22 12:42:59] "GET /static/css/style.css HTTP/1.1" 404 122 0.000591
['_e()'](https://github.com/defnull/bottle/blob/master/bottle.py#L38) – jfs 2011-12-22 10:54:20
我不明白你的意见。你能否重复假装? :) – bbrodriges 2011-12-22 12:07:52
这似乎是'bottle.py'中的一个错误。定义'bottle._e = lambda:sys.exc_info()[1]'作为解决方法。 – jfs 2011-12-22 12:31:42