メインコンテンツまでスキップ

Next.js プロジェクト構成

このページでは、Next.js アプリケーションのプロジェクト構成の概要を提供します。トップレベルのファイルとフォルダ、設定ファイル、および apppages ディレクトリ内のルーティング規約をカバーしています。

ファイルとフォルダの名前をクリックして、それぞれの規約について詳細を学んでください。

トップレベルのフォルダ

トップレベルのフォルダは、アプリケーションのコードや静的アセットを整理するために使います。

ルートセグメントからパスセグメントへのマッピングルートセグメントからパスセグメントへのマッピング
appApp Router
pagesPages Router
public提供する静的アセット
srcオプションのアプリケーションソースフォルダ

トップレベルのファイル

トップレベルのファイルは、アプリケーションを設定し、依存関係を管理し、ミドルウェアを実行し、監視ツールを統合し、環境変数を定義するために使用します。

Next.js
next.config.jsNext.js の設定ファイル
package.jsonプロジェクトの依存関係とスクリプト
instrumentation.tsOpenTelemetry とinstrumentationファイル
middleware.tsNext.js リクエストミドルウェア
.env環境変数
.env.localローカル環境変数
.env.production本番環境変数
.env.development開発環境変数
.eslintrc.jsonESLint の設定ファイル
.gitignoreGit で無視するファイルとフォルダ
next-env.d.tsNext.js 用の TypeScript 宣言ファイル
tsconfig.jsonTypeScript の設定ファイル
jsconfig.jsonJavaScript の設定ファイル

app ルーティング規約

以下のファイル規約は、app router内でのルートの定義とメタデータの処理に使用します。

ルーティングファイル

layout.js .jsx .tsxレイアウト
page.js .jsx .tsxページ
loading.js .jsx .tsxローディング UI
not-found.js .jsx .tsxNot found UI
error.js .jsx .tsxエラー UI
global-error.js .jsx .tsxグローバルエラー UI
route.js .tsAPI エンドポイント
template.js .jsx .tsx再レンダリングされるレイアウト
default.js .jsx .tsxParallel route のフォールバックページ

入れ子のルート

folderルートセグメント
folder/folder入れ子のルートセグメント

動的ルート

[folder]動的ルートセグメント
[...folder]Catch-all route セグメント
[[...folder]]Optional Catch-all route セグメント

Route Groups とプライベートフォルダ

(folder)ルーティングに影響を与えずにルートをグループ化
_folderフォルダとすべての子セグメントをルーティングから除外

パラレルおよびインターセプトルート

@folder名前付きスロット
(.)folder同レベルでインターセプト
(..)folder1レベル上でインターセプト
(..)(..)folder2レベル上でインターセプト
(...)folderroot からインターセプト

メタデータファイルの規約

アプリアイコン

favicon.icoFavicon ファイル
icon.ico .jpg .jpeg .png .svgアプリアイコンファイル
icon.js .ts .tsx生成されたアプリアイコン
apple-icon.jpg .jpeg, .pngApple アプリアイコンファイル
apple-icon.js .ts .tsx生成された Apple アプリアイコン

Open Graph と Twitter 画像

opengraph-image.jpg .jpeg .png .gifOpen Graph 画像ファイル
opengraph-image.js .ts .tsx生成された Open Graph 画像
twitter-image.jpg .jpeg .png .gifTwitter 画像ファイル
twitter-image.js .ts .tsx生成された Twitter 画像

SEO

sitemap.xmlサイトマップファイル
sitemap.js .ts生成されたサイトマップ
robots.txtRobots ファイル
robots.js .ts生成されたRobotsファイル

pages ルーティング規約

以下のファイル規約は、pages router内でのルートの定義に使用します。

特殊ファイル

_app.js .jsx .tsxカスタムアプリ
_document.js .jsx .tsxカスタムドキュメント
_error.js .jsx .tsxカスタムエラーページ
404.js .jsx .tsx404 エラーページ
500.js .jsx .tsx500 エラーページ

ルート

フォルダ規約
index.js .jsx .tsxホームページ
folder/index.js .jsx .tsx入れ子ページ
ファイル規約
index.js .jsx .tsxホームページ
file.js .jsx .tsx入れ子ページ

動的ルート

フォルダ規約
[folder]/index.js .jsx .tsx動的ルートセグメント
[...folder]/index.js .jsx .tsxCatch-all route セグメント
[[...folder]]/index.js .jsx .tsxOptional Catch-all route セグメント
ファイル規約
[file].js .jsx .tsx動的ルートセグメント
[...file].js .jsx .tsxCatch-all route セグメント
[[...file]].js .jsx .tsxOptional Catch-all route セグメント