Menu

Next.js プロジェクト構造

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

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

トップレベルのフォルダ

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

ルートセグメントからパスセグメントへ
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 の設定ファイル
.gitignoreGit で無視するファイルとフォルダ
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 .tsAPIエンドポイント
template.js .jsx .tsx再レンダリングされるレイアウト
default.js .jsx .tsxパラレルルートのフォールバックページ

ネストされたルート

folderルートセグメント
folder/folderネストされたルートセグメント

ダイナミックルート

[folder]ダイナミックルートセグメント
[...folder]キャッチオールルートセグメント
[[...folder]]オプションのキャッチオールルートセグメント

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

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

パラレルとインターセプトルート

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

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

アプリアイコン

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カスタム Document
_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 .tsxキャッチオールルートセグメント
[[...folder]]/index.js .jsx .tsxオプションキャッチオールルートセグメント
ファイル規則
[file].js .jsx .tsx動的ルートセグメント
[...file].js .jsx .tsxキャッチオールルートセグメント
[[...file]].js .jsx .tsxオプションキャッチオールルートセグメント