exportPathMap
Diese Funktion ist exklusiv für
next exportund aktuell veraltet, zugunsten vongetStaticPathsmitpagesodergenerateStaticParamsmitapp.
Beispiele
exportPathMap ermöglicht es Ihnen, eine Zuordnung von Anfragepfaden zu Seitenzielen anzugeben, die während des Exports verwendet werden soll. Pfade, die in exportPathMap definiert sind, sind auch verfügbar, wenn next dev verwendet wird.
Beginnen wir mit einem Beispiel, um eine benutzerdefinierte exportPathMap für eine App mit den folgenden Seiten zu erstellen:
pages/index.jspages/about.jspages/post.js
Öffnen Sie next.config.js und fügen Sie die folgende exportPathMap-Konfiguration hinzu:
module.exports = {
exportPathMap: async function (
defaultPathMap,
{ dev, dir, outDir, distDir, buildId }
) {
return {
'/': { page: '/' },
'/about': { page: '/about' },
'/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
'/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
'/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } },
}
},
}Gut zu wissen: Das
query-Feld inexportPathMapkann nicht mit automatisch statisch optimierten Seiten odergetStaticProps-Seiten verwendet werden, da diese zur Build-Zeit in HTML-Dateien gerendert werden und zusätzliche Abfrageinformationen währendnext exportnicht bereitgestellt werden können.
Die Seiten werden dann als HTML-Dateien exportiert, zum Beispiel wird /about zu /about.html.
exportPathMap ist eine async-Funktion, die 2 Argumente empfängt: Das erste ist defaultPathMap, die standardmäßige Zuordnung, die von Next.js verwendet wird. Das zweite Argument ist ein Objekt mit:
dev-true, wennexportPathMapin der Entwicklung aufgerufen wird.falsebeim Ausführen vonnext export. In der Entwicklung wirdexportPathMapverwendet, um Routen zu definieren.dir- Absoluter Pfad zum ProjektverzeichnisoutDir- Absoluter Pfad zumout/-Verzeichnis (konfigurierbar mit-o). Wenndevtrueist, ist der Wert vonoutDirnull.distDir- Absoluter Pfad zum.next/-Verzeichnis (konfigurierbar mit derdistDir-Konfiguration)buildId- Die generierte Build-ID
Das zurückgegebene Objekt ist eine Zuordnung von Seiten, wobei der key der pathname ist und der value ein Objekt, das die folgenden Felder akzeptiert:
page:String- die Seite impages-Verzeichnis, die gerendert werden sollquery:Object- dasquery-Objekt, das angetInitialPropsübergeben wird, wenn vorgerendert wird. Standardmäßig{}
Der exportierte
pathnamekann auch ein Dateiname sein (zum Beispiel/readme.md), aber Sie müssen möglicherweise denContent-Type-Header auftext/htmlsetzen, wenn der Inhalt anders als.htmlist.
Hinzufügen eines nachgestellten Schrägstrichs
Es ist möglich, Next.js so zu konfigurieren, dass Seiten als index.html-Dateien exportiert werden und nachgestellte Schrägstriche erforderlich sind. /about wird dann zu /about/index.html und ist über /about/ erreichbar. Dies war das Standardverhalten vor Next.js 9.
Um dies wieder zu aktivieren und einen nachgestellten Schrägstrich hinzuzufügen, öffnen Sie next.config.js und aktivieren Sie die trailingSlash-Konfiguration:
module.exports = {
trailingSlash: true,
}Anpassung des Ausgabeverzeichnisses
next export verwendet standardmäßig out als Ausgabeverzeichnis. Sie können dies mit dem -o-Argument anpassen, wie folgt:
next export -o outdirWarnung: Die Verwendung von
exportPathMapist veraltet und wird durchgetStaticPathsinnerhalb vonpagesüberschrieben. Wir empfehlen nicht, sie gemeinsam zu verwenden.