Plackでの500ページ表示
最終更新日 : 2011-04-10 10:03:41
Plackを利用して、エラーページ(500) を表示する際には、Plack::Middleware::ErrorDocument を利用すればよい。ただし、このミドルウエアーは正常なデータレスポンスを500のコード等で返した際にのみ実行されるので、アプリケーション側で例外的なエラーが発生した場合には拾ってくれない。そういったケースの場合は、Plack::Middleware::HTTPExceptions と併用して利用すれば、例外エラーを正常な500コードのレスポンスに変換してくれるのでうまくいく。
この際に気をつけなければならないのは順番で、HTTPExceptionsを $appに近い側で呼ばなければならない。
builder {
enable "ErrorDocument",
500 => '/uri/errors/500.html', 404 => '/uri/errors/404.html',
subrequest => 1;
enable "HTTPExceptions";
$app;
};
この際に気をつけなければならないのは順番で、HTTPExceptionsを $appに近い側で呼ばなければならない。