次のアプリケーション構成があります。
settings = {
'default_handler_class': BaseHandler
}
app = web.Application([
(r'/', IndexHandler),
(r'/ws', SocketHandler),
(r'/js/(.*)', web.StaticFileHandler, {'path': 'assets/js', 'default_filename': 'templates/error.html'}),
(r'/css/(.*)', web.StaticFileHandler, {'path': 'assets/css'}),
(r'/images/(.*)', web.StaticFileHandler, {'path': 'assets/images'})
], **settings)
ファイルを入力http://localhost:8888/js/d3.min.js
すると提供されますが、ファイル名のスペルを間違えて提供するhttp://localhost:8888/js/d3.mi.js
と、たとえば、にあるデフォルトのエラーページを取得したいと思いますtemplates/error.html
。URL のhttp://localhost:8888/not/existing
場合は問題なく動作しますが、http://localhost:8888/js/d3.mi.js
単純に表示され404: Not Found
ます。
ドキュメントで次の部分を見つけました:
ディレクトリが要求されたときに index.html のようなファイルを自動的に提供するには、アプリケーション設定で static_handler_args=dict(default_filename="index.html") を設定するか、staticFileHandler の初期化引数として default_filename を追加します。
ただし、言及されたコードをどこで指定する必要があるのか わかりません。私の'default_filename': 'templates/error.html'
コードでは動作しません。