atom.web-builder.nextjs-routing
ページ遷移の仕組み——URLとフォルダの関係
ページ遷移の仕組み——URLとフォルダの関係 このレッスンでは、あなたが作った Next.js アプリに 新しいページを1つ追加し、ブラウザのアドレス欄から開けるようにする ところまでを体験します。所要時間は 15...
成果物成果物このレッスンが終わったとき、あなたの手元に残る具体的な成果物です(例: 公開済みの Web ページ、動作するフォームなど)。
証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。
メディアメディアレッスン内に出てくる図や動画のスロットです。実際の画面やイメージで理解を補助します。
レッスン本文
ページ遷移の仕組み——URLとフォルダの関係
このレッスンでは、あなたが作った Next.js アプリに新しいページを1つ追加し、ブラウザのアドレス欄から開けるようにするところまでを体験します。所要時間は 15 分です。
まず大事な考え方: フォルダ=URL
Next.js では、app/ というフォルダの中の「フォルダ名」がそのまま URL の一部になります。料理で例えるなら、冷蔵庫の中の「棚の名前」がそのまま「料理のジャンル」になっているイメージです。app/about/ というフォルダを作れば、ブラウザで /about を開いたときに表示されるページになります。
app/page.tsx→ トップページ(/)app/about/page.tsx→/aboutページapp/contact/page.tsx→/contactページ
ポイント: ページの中身を書くファイル名は、必ず page.tsx という決まった名前にします。これは Next.js が「このファイルがページ本体ですよ」と認識するためのお約束です。

前提を確認する
- 前のレッスンで
pnpm create next-appを使って Next.js プロジェクトができていること - エディタ(Cursor でも VS Code でも OK)でプロジェクトのフォルダを開けること
- ターミナル(=パソコンに文字で命令を出す黒い画面)で
pnpm devがすでに動いていること
まだ pnpm dev を動かしていない場合は、プロジェクトのフォルダで次の1行を実行します。これはローカル(=あなたのパソコンの中だけ)で試作サーバーを立ち上げる命令です。
pnpm dev
起動すると http://localhost:3000 というアドレスでアプリが見られるようになります。
手順1: `/about` ページを追加する
エディタで app/ フォルダを開き、その中に about という新しいフォルダを作ります。そしてその about フォルダの中に page.tsx というファイルを新しく作ります。
ファイルの中身は、最初は次の5行で十分です。これは「about というページで、H1見出しと1行の本文を表示する」という意味です。
export default function AboutPage() {
return <h1>はじめまして、このサイトについて</h1>;
}
迷ったら AI に聞く: Cursor や ChatGPT を開いて、こう聞くと具体的な例がもらえます。
「Next.js の app router で
/aboutページを追加したいです。app/about/page.tsxの最小サンプルを書いてください。日本語の見出しが1つだけあるシンプルなもので。」
手順2: ブラウザで開いて確認する
ブラウザで http://localhost:3000/about を開きます。さきほど書いた見出しが表示されれば成功です。

良い例 / 悪い例: フォルダの作り方
- 良い例:
app/about/page.tsxを作る →/aboutで開ける - 良い例:
app/pricing/page.tsxを作る →/pricingで開ける - 悪い例:
app/about.tsx(フォルダを作らずファイルだけ置く)→ 認識されません - 悪い例:
app/about/index.tsx(ファイル名がpage.tsxでない)→ 表示されません
手順3: トップから about へリンクでつなぐ
今はアドレスを手で打って移動していますが、本来はトップページからクリックで飛べるようにしたいはずです。app/page.tsx を開いて、次の1行を本文のどこかに追加します。
<a href="/about">このサイトについて</a>
保存してトップページをリロードすると、リンクが表示され、クリックで /about に移動できます。(Next.js には Link という専用部品もありますが、今回はまず <a> タグで動く感覚をつかめば十分です。)
確認すること(completion check)
次の3つが全部できていれば、このレッスンは完了です。
http://localhost:3000/aboutを開くと、自分が書いた見出しが表示される- トップページにある「このサイトについて」リンクをクリックすると
/aboutに移動する app/about/page.tsxというフォルダ+ファイルの組み合わせで新しいページができる仕組みを自分の言葉で説明できる
つまずきやすいポイント
- 404 が出る: ほとんどの場合、フォルダ名が違うか、ファイル名が
page.tsxになっていません。app/about/page.tsxという形になっているか見直してください - 保存したのに反映されない:
pnpm devのターミナルに赤いエラーが出ていないか確認します。エラー文をそのまま Claude や Cursor に貼り付けて「これを直す最小の修正を教えて」と聞くと早いです - 大文字小文字:
Aboutとaboutは別物として扱われます。URL は全部小文字に揃えるのが無難です app/とpages/が両方ある: 今回はapp/の中だけを触ります。pages/は古いやり方なので、無ければ作る必要はありません
AI に助けてもらうときのおすすめプロンプト
- 「
app/の中に/pricingと/contactの2ページを追加したいです。それぞれpage.tsxの最小サンプルを、日本語の見出しだけのシンプルな内容で書いてください」 - 「トップページから
/aboutに飛ぶリンクを、Next.js の推奨するLinkコンポーネントで書き直してください。今の<a href="/about">を置き換える形で」 - 「
/aboutを開くと 404 になります。原因として考えられることを、フォルダ構成とファイル名の観点で3つ教えてください」
種類: code_snippet
検証: basic_manual_check_v1
証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。
メディア