我有一个非常基本的jinja模板,它可以正常显示htm,但是日志抱怨了favicon.ico,即使我在/和/ templates中都有。我做错了什么? 另外,我的css加载错误了吗?
import jinja2
import os
import logging
import webapp2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'])
class MainHandler(webapp2.RequestHandler):
def get(self):
path = self.request.path
logging.info('from main %s', path)
if (path=='/'):
templa=JINJA_ENVIRONMENT.get_template('/templates/index.htm')
else:
templa=JINJA_ENVIRONMENT.get_template(path)
try:
self.response.write(templa.render({}))
except:
self.response.out.write('Error - unable to find %s' % path)
app = webapp2.WSGIApplication([('/.*',MainHandler)],
debug=True)
------只显示错误 INFO 2013-10-07 19:44:53,500 index4.py:44]来自main /templates/topics.htm INFO 2013-10-07 19:44:53,516 dev_appserver.py:3103]“GET /templates/topics.htm HTTP / 1.1”200 - INFO 2013-10-07 19:44:53,532 dev_appserver.py:3103]“获取/static/glike.css HTTP / 1.1”304 - 信息2013-10-07 19:44:53,609 index4.py:44]来自主/favicon.ico ERROR 2013-10-07 19:44:53,609 webapp2.py:1552]'utf8'编解码器无法解码位置142的字节0x96:无效的起始字节 Traceback(最近一次调用最后一次): 文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第1535行,致电 rv = self.handle_exception(request,response,e) 文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第1529行,通话 rv = self.router.dispatch(请求,响应) 在default_dispatcher中输入文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第1278行 return route.handler_adapter(request,response) 文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第1102行,致电 return handler.dispatch() 发送文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第572行 return self.handle_exception(e,self.app.debug) 文件“C:\ Program Files \ Google \ google_appengine \ lib \ webapp2 \ webapp2.py”,第570行,发送 返回方法(* args,** kwargs) 在get中输入文件“C:\ projects \ apps \ ae-07-grades \ index4.py”,第48行 templa = JINJA_ENVIRONMENT.get_template(路径) 在get_template中输入文件“C:\ Program Files \ Google \ google_appengine \ lib \ jinja2 \ jinja2 \ environment.py”,第719行 return self._load_template(name,self.make_globals(globals)) 在_load_template中输入文件“C:\ Program Files \ Google \ google_appengine \ lib \ jinja2 \ jinja2 \ environment.py”,第693行 template = self.loader.load(self,name,globals) 加载文件“C:\ Program Files \ Google \ google_appengine \ lib \ jinja2 \ jinja2 \ loaders.py”,第115行 source,filename,uptodate = self.get_source(environment,name) get_source中的文件“C:\ Program Files \ Google \ google_appengine \ lib \ jinja2 \ jinja2 \ loaders.py”,第169行 contents = f.read()。decode(self.encoding) 在解码中文件“C:\ Python27 \ lib \ encodings \ utf_8.py”,第16行 return codecs.utf_8_decode(input,errors,True) UnicodeDecodeError:'utf8'编解码器无法解码位置142的字节0x96:无效的起始字节 INFO 2013-10-07 19:44:53,641 dev_appserver.py:3103]“GET /favicon.ico HTTP / 1.1”500 -
答案 0 :(得分:2)
看起来jinja2正试图加载/favicon.ico
作为jinja模板,并且正在窒息它。
处理/favicon.ico
的常用方法是将其声明为app.yaml
中的静态文件。