カスタムエラー
404ページ
404ページは非常に頻繁にアクセスされる可能性があります。すべてのアクセスでエラーページをサーバーレンダリングすると、Next.jsサーバーの負荷が増加します。これにより、コストの増加と遅いユーザー体験が生じる可能性があります。
これらの欠点を避けるため、Next.jsはデフォルトで追加のファイルなしで静的な404ページを提供します。
404ページのカスタマイズ
カスタムの404ページを作成するには、pages/404.js
ファイルを作成します。このファイルはビルド時に静的に生成されます。
補足: ビルド時にデータを取得する必要がある場合、このページ内で
getStaticProps
を使用できます。
500ページ
エラーページを毎回サーバーレンダリングすることは、エラー対応の複雑さを増加させます。ユーザーがエラーに対する応答をできるだけ早く取得できるよう、Next.jsはデフォルトで追加のファイルなしで静的な500ページを提供します。
500ページのカスタマイズ
500ページをカスタマイズするには、pages/500.js
ファイルを作成します。このファイルはビルド時に静的に生成されます。
補足: ビルド時にデータを取得する必要がある場合、このページ内で
getStaticProps
を使用できます。
より高度なエラーページのカスタマイズ
500エラーは、クライアントサイドとサーバーサイドの両方でError
コンポーネントによって処理されます。オーバーライドする場合は、pages/_error.js
ファイルを定義し、以下のコードを追加します:
pages/_error.js
は本番環境でのみ使用されます。開発環境では、エラーの発生元を知るためにコールスタックを含むエラーが表示されます。
組み込みのエラーページの再利用
組み込みのエラーページをレンダリングする場合は、Error
コンポーネントをインポートできます:
Error
コンポーネントは、statusCode
と一緒にテキストメッセージを渡す場合、title
プロパティも受け取ります。
カスタムのError
コンポーネントがある場合は、必ずそれをインポートしてください。next/error
は、Next.jsで使用されるデフォルトコンポーネントをエクスポートします。
注意点
Error
は現在、Next.jsのデータ取得メソッド(getStaticProps
やgetServerSideProps
など)をサポートしていません。_error
は_app
と同様に予約されたパス名です。_error
はエラーページのレイアウトと動作をカスタマイズするために使用されます。/_error
は、ルーティングを介して直接アクセスされた場合、またはカスタムサーバーでレンダリングされた場合に404をレンダリングします。