Tornado静态文件的自定义错误处理程序
问题描述:
如何显示静态文件的自定义404错误页面?Tornado静态文件的自定义错误处理程序
在我目前的应用处理程序如下
[
(r'/(favicon.ico)', tornado.web.StaticFileHandler, {"path": mypath}),
(r'/foo',FooHandler),
(r'/bar',BarHandler),
(r'/(.*)',ErrorHandler),
]
我已经加入最后一个模式,这是我的错误处理程序
class ErrorHandler(BaseHandler):
def get(self,d):
self.status_code = 404
self.show404(d)
如果我访问http://localhost/abc
我得到我的自定义404页
但如果我试图得到http://localhost/static/abc.js
我得到像下面这样的丑陋错误
line 2286, in validate_absolute_path
raise HTTPError(404)
HTTPError: HTTP 404: Not Found
有没有什么办法得到这个工作?如何显示我的静态文件的自定义错误页面
答
这有点棘手;您需要继承StaticFileHandler并覆盖其write_error方法,然后使用static_handler_class应用程序设置来安装该类。