コンテンツにスキップ
はじめに入門プロジェクト構造

Next.jsプロジェクト構造

このページでは、Next.jsアプリケーションのプロジェクト構造の概要を説明します。トップレベルのファイルとフォルダ、設定ファイル、および`app`ディレクトリと`pages`ディレクトリ内のルーティング規則について説明します。

各規則の詳細については、ファイル名とフォルダ名をクリックしてください。

トップレベルフォルダ

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

Route segments to path segments
appApp Router
pagesPages Router
public配信される静的アセット
srcオプションのアプリケーションソースフォルダ

トップレベルファイル

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

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

`app` ルーティング規約

以下のファイル規約は、`app`ルータでルートを定義し、メタデータを処理するために使用されます。

ルーティングファイル

layout`.js` `jsx` `tsx`レイアウト
page`.js` `jsx` `tsx`ページ
loading`.js` `jsx` `tsx`ローディングUI
not-found`.js` `jsx` `tsx`見つからないUI
error`.js` `jsx` `tsx`エラーUI
global-error`.js` `jsx` `tsx`グローバルエラーUI
route`.js` `.ts`APIエンドポイント
template`.js` `jsx` `tsx`再レンダリングされたレイアウト
default`.js` `jsx` `tsx`並列ルートフォールバックページ

ネストされたルート
フォルダルートセグメント
フォルダ/フォルダネストされたルートセグメント

動的ルート

[フォルダ]動的ルートセグメント
[...フォルダ]キャッチオールルートセグメント
[[...フォルダ]]オプションのキャッチオールルートセグメント

ルートグループとプライベートフォルダ

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

並列ルートとインターセプトルート

@フォルダ名前付きスロット
(.)フォルダ同じレベルをインターセプトする
(..)フォルダ1つ上のレベルをインターセプトする
(..)(..)フォルダ2つ上のレベルをインターセプトする
(...)フォルダルートからインターセプトする

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

アプリのアイコン

favicon.icoファビコンファイル
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ルータでルートを定義するために使用されます。

特別なファイル
_app`.js` `jsx` `tsx`カスタムApp
_document`.js` `jsx` `tsx`カスタムドキュメント
_error`.js` `jsx` `tsx`カスタムエラーページ
404`.js` `jsx` `tsx`404エラーページ
500`.js` `jsx` `tsx`500エラーページ

ルート
フォルダの規約
index`.js` `jsx` `tsx`ホームページ
フォルダ/index`.js` `jsx` `tsx`ネストされたページ
ファイルの規約
index`.js` `jsx` `tsx`ホームページ
ファイル`.js` `jsx` `tsx`ネストされたページ

動的ルート

フォルダの規約
[フォルダ]/index`.js` `jsx` `tsx`動的ルートセグメント
[...フォルダ]/index`.js` `jsx` `tsx`キャッチオールルートセグメント
[[...フォルダ]]/index`.js` `jsx` `tsx`オプションのキャッチオールルートセグメント
ファイルの規約
[ファイル]`.js` `jsx` `tsx`動的ルートセグメント
[...ファイル]`.js` `jsx` `tsx`キャッチオールルートセグメント
[[...ファイル]]`.js` `jsx` `tsx`オプションのキャッチオールルートセグメント