Plackでの500ページ表示

最終更新日 : 2011-04-10 10:03:41

Plackを利用して、エラーページ(500) を表示する際には、Plack::Middleware::ErrorDocument を利用すればよい。ただし、このミドルウエアーは正常なデータレスポンスを500のコード等で返した際にのみ実行されるので、アプリケーション側で例外的なエラーが発生した場合には拾ってくれない。そういったケースの場合は、Plack::Middleware::HTTPExceptions と併用して利用すれば、例外エラーを正常な500コードのレスポンスに変換してくれるのでうまくいく。

  builder {
      enable "ErrorDocument",
          500 => '/uri/errors/500.html', 404 => '/uri/errors/404.html',
          subrequest => 1;
      enable "HTTPExceptions";
      $app;
  };

この際に気をつけなければならないのは順番で、HTTPExceptionsを $appに近い側で呼ばなければならない。
  • カテゴリ:
  • Tech