exportPathMap(非推奨)
この機能は
next export
専用であり、現在はpages
のgetStaticPaths
またはapp
のgenerateStaticParams
に置き換えられています。
例
exportPathMap
を使用すると、エクスポート時にリクエストパスからページの宛先へのマッピングを指定できます。exportPathMap
で定義されたパスは、next dev
を使用する際にも利用可能です。
例として、以下のページを持つアプリのカスタム exportPathMap
を作成してみましょう:
pages/index.js
pages/about.js
pages/post.js
next.config.js
を開き、以下の exportPathMap
設定を追加します:
補足:
exportPathMap
のquery
フィールドは、自動的に静的に最適化されたページやgetStaticProps
ページでは使用できません。これらのページはビルド時にHTMLファイルにレンダリングされるため、追加のクエリ情報をnext export
中に提供することはできません。
ページは HTML ファイルとしてエクスポートされます。例えば、/about
は /about.html
になります。
exportPathMap
は、2 つの引数を受け取る非同期関数です:最初の引数は Next.js によって使用されるデフォルトのマップである defaultPathMap
、2 番目の引数は以下のオブジェクトです:
dev
-exportPathMap
が開発中に呼び出される場合はtrue
。next export
の実行時はfalse
。開発中、exportPathMap
はルートを定義するために使用されます。dir
- プロジェクトディレクトリへの絶対パスoutDir
-out/
ディレクトリへの絶対パス(-o
で設定可能)。dev
がtrue
の場合、outDir
の値はnull
になります。distDir
-.next/
ディレクトリへの絶対パス(distDir
設定で設定可能)buildId
- 生成されたビルド ID
返されるオブジェクトは、ページのマップであり、key
は pathname
、value
は以下のフィールドを受け入れるオブジェクトです:
page
:String
- レンダリングするpages
ディレクトリ内のページquery
:Object
- プリレンダリング時にgetInitialProps
に渡されるquery
オブジェクト。デフォルトは{}
エクスポートされる
pathname
はファイル名(例:/readme.md
)にすることもできますが、異なる場合はコンテンツを提供する際にContent-Type
ヘッダーを.html
以外のtext/html
に設定する必要があります。
末尾のスラッシュを追加
Next.js をページを index.html
ファイルとしてエクスポートし、末尾のスラッシュを必要とするように設定できます。/about
は /about/index.html
になり、/about/
経由でアクセスできます。これは Next.js 9 以前のデフォルトの動作でした。
末尾のスラッシュを追加して戻すには、next.config.js
を開き、trailingSlash
設定を有効にします:
出力ディレクトリのカスタマイズ
next export
はデフォルトで out
を出力ディレクトリとして使用します。-o
引数を使用してこれをカスタマイズできます:
注意:
exportPathMap
の使用は非推奨であり、pages
内のgetStaticPaths
によって上書きされます。これらを一緒に使用することはお勧めしません。