Next.js13のApp Routerで404ページ作成&静的エクスポート
2023/12/09 (土) - 00:00 JavaScript
404 Not Foundページの作成
Next.js 13以降で採用されたApp RouterでWebページ作成中。404 Not Foundページの作成方法が、Page Routerの時と変わっていたのでもメモ。公式ドキュメントに書いてありました。
App Routerでは、appディレクトリにnot-found.js
のファイルを生成するようです。
import Link from "next/link";
export const metadata = {
title: 'ページが見つかりません'
}
export default function Error404() {
return (
<div>
<h1>ファイルがない…ただの屍のようだ…</h1>
<Link href="/">TOP PAGE</Link>
</div>
)
}
表示イメージ(ヘッダーやグローバルナビは無視して下さい)
静的エクスポート Static Exports(Static HTML Export)
ついでに、Next.js 13.4ではNext.jsで構築したアプリケーションを静的ファイルに書き出す静的エクスポート<Static Exports(Static HTML Export)>のコマンドである、next export
が廃止されやり方が変わっていたのでそれもメモ。
next.config.js
でコンフィグの中に、output: 'export'
を記述。
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
}
module.exports = nextConfig
エクスポートを実行。
% npm run build
ビルドが実行されるのでしばらく待ちます。何事もエラーがなければ終了します。ファイルは/out/
のディレクトリに生成されます。
下層ページをディレクトリごと出力する
このままエクスポートすると、たとえばabout/page.js
は、about.html
として静的ファイルが出力されます。
これをabout/
という風にディレクトリごとに出力したい場合は、コンフィグファイルに設定を加えます。先ほどのnext.config.js
の設定値の行の次に、trailingSlash: true
を追加し、再度エクスポートをします。
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
trailingSlash: true
}
module.exports = nextConfig
すると、about/index.html
のように出力追加されます。
ブラウザでもabout.htm
ではなく、about/
でアクセスできるようになりました。
おしまい♥
おすすめ記事
- Next.js(App Router)で、Fetch APIを使った静的ファイル生成(SSG)でヘマした
- 3の倍数と3が含まれる秒でアホになるぴえん時計
- スクロールして要素が見えたら画像がワイプのアニメーションで表示するやつ
- PHPとGASを使ってフォームの内容をGoogleスプレッドシートに書き込む
- Next.js[App Router]&microCMSでRSSフィードを実装する
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/nextjs_404_export/trackback/