Menu

exportPathMap (Veraltet)

Diese Funktion ist exklusiv für next export und derzeit veraltet zugunsten von getStaticPaths mit pages oder generateStaticParams mit app.

Beispiele

exportPathMap ermöglicht es Ihnen, eine Zuordnung von Anfragepfaden zu Seitendestinationen während des Exports anzugeben. Pfade, die in exportPathMap definiert sind, stehen auch bei Verwendung von next dev zur Verfügung.

Beginnen wir mit einem Beispiel, um eine benutzerdefinierte exportPathMap für eine App mit den folgenden Seiten zu erstellen:

  • pages/index.js
  • pages/about.js
  • pages/post.js

Öffnen Sie next.config.js und fügen Sie die folgende exportPathMap-Konfiguration hinzu:

next.config.js
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' } },
    }
  },
}

Hinweis: Das Feld query in exportPathMap kann nicht mit automatisch statisch optimierten Seiten oder getStaticProps-Seiten verwendet werden, da diese zur Build-Zeit in HTML-Dateien gerendert werden und keine zusätzlichen Abfrageinformationen während next export 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 erhält: Der erste ist defaultPathMap, die standardmäßige Karte, die von Next.js verwendet wird. Das zweite Argument ist ein Objekt mit:

  • dev - true, wenn exportPathMap in der Entwicklung aufgerufen wird. false beim Ausführen von next export. In der Entwicklung wird exportPathMap verwendet, um Routen zu definieren.
  • dir - Absoluter Pfad zum Projektverzeichnis
  • outDir - Absoluter Pfad zum out/-Verzeichnis (konfigurierbar mit -o). Wenn dev true ist, wird der Wert von outDir null sein.
  • distDir - Absoluter Pfad zum .next/-Verzeichnis (konfigurierbar mit der distDir-Konfiguration)
  • buildId - Die generierte Build-ID

Das zurückgegebene Objekt ist eine Zuordnung von Seiten, bei der der key der pathname und der value ein Objekt ist, das die folgenden Felder akzeptiert:

  • page: String - die Seite innerhalb des pages-Verzeichnisses, die gerendert werden soll
  • query: Object - das query-Objekt, das an getInitialProps beim Vorrendern übergeben wird. Standardmäßig {}

Der exportierte pathname kann auch ein Dateiname sein (zum Beispiel /readme.md), aber Sie müssen möglicherweise den Content-Type-Header auf text/html setzen, wenn Sie seinen Inhalt bedienen, wenn er sich von .html unterscheidet.

Hinzufügen eines Trailing-Schrägstrichs

Es ist möglich, Next.js so zu konfigurieren, dass Seiten als index.html-Dateien exportiert werden und ein Trailing-Schrägstrich erforderlich ist, /about wird zu /about/index.html und ist über /about/ erreichbar. Dies war das Standardverhalten vor Next.js 9.

Um auf den Trailing-Schrägstrich zurückzuschalten, öffnen Sie next.config.js und aktivieren Sie die trailingSlash-Konfiguration:

next.config.js
module.exports = {
  trailingSlash: true,
}

Anpassen des Ausgabeverzeichnisses

next export verwendet standardmäßig out als Ausgabeverzeichnis. Sie können dies mit dem -o-Argument anpassen, wie folgt:

Terminal
next export -o outdir

Warnung: Die Verwendung von exportPathMap ist veraltet und wird von getStaticPaths in pages überschrieben. Wir empfehlen nicht, diese gemeinsam zu verwenden.