2014-09-24 65 views
3

如何顯示靜態文件的自定義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 

有沒有什麼辦法得到這個工作?如何顯示我的靜態文件的自定義錯誤頁面

回答

1

這有點棘手;您需要繼承StaticFileHandler並覆蓋其write_error方法,然後使用static_handler_class應用程序設置來安裝該類。

相關問題