Aufgrund neuer aufstrebender Bibliotheken, die die gleiche Funktionabilität ausführen, wird diese Bibliothek als veraltet gekennzeichnet und erwägt die Verwendung der Bibliothek der nächsten Sitemap.
Wir suchen nach Betreuer, weil ich nicht genug Zeit habe, um das Paket zu pflegen.
Bitte erwägen Sie, eine Spende für die Wartung des Projekts zu leisten.
Spenden
Einfacher sitemap.xml Mapper für Next.js -Projekte.
Um das Paket zu installieren, führen Sie dies in Ihrem Terminal aus, wenn Sie Garn verwenden:
yarn add nextjs-sitemap-generator
Und dies, wenn Sie NPM verwenden:
npm i --save-dev nextjs-sitemap-generator
NextJS startet seinen eigenen Server, um alle erstellten Dateien zu bedienen. Es gibt jedoch eine andere Option namens Custom Server, die eine Datei zum Starten eines nächsten Servers verwendet.
Wenn Sie dieses Paket verwenden möchten, müssen Sie die FEERN -Datei erstellen. Hier finden Sie, wie es hier geht
Dieses Modul wurde erstellt, um auf der Node -benutzerdefinierten Serverseite von NextJs verwendet zu werden.
Es soll in index.js/server.js verwendet werden, damit der Server bei der Initialisierung nur einmal ausgeführt wird.
Wenn Sie es in einen der Anforderungsbehandlungen der Node -Serverleistung aufnehmen können, kann dies beeinträchtigt werden.
Für diejenigen Personen, die in Vercel einsetzen:
Ein benutzerdefinierter Server kann nicht auf Vercel bereitgestellt werden, die Plattform Next.js wurde hergestellt.
Zum Beispiel:
Wenn Sie diese Beispielserverdatei haben
// server.js
const sitemap = require ( 'nextjs-sitemap-generator' ) ; // Import the package
const { createServer } = require ( 'http' )
const { parse } = require ( 'url' )
const next = require ( 'next' )
const dev = process . env . NODE_ENV !== 'production'
const app = next ( { dev } )
const handle = app . getRequestHandler ( )
/*
Here you is you have to use the sitemap function.
Using it here you are allowing to generate the sitemap file
only once, just when the server starts.
*/
sitemap ( {
alternateUrls : {
en : 'https://example.en' ,
es : 'https://example.es' ,
ja : 'https://example.jp' ,
fr : 'https://example.fr' ,
} ,
baseUrl : 'https://example.com' ,
ignoredPaths : [ 'admin' ] ,
extraPaths : [ '/extraPath' ] ,
pagesDirectory : __dirname + "\pages" ,
targetDirectory : 'static/' ,
sitemapFilename : 'sitemap.xml' ,
nextConfigPath : __dirname + "\next.config.js"
} ) ;
app . prepare ( ) . then ( ( ) => {
createServer ( ( req , res ) => {
const parsedUrl = parse ( req . url , true )
const { pathname , query } = parsedUrl
if ( pathname === '/a' ) {
app . render ( req , res , '/a' , query )
}
else if ( pathname === '/b' ) {
app . render ( req , res , '/b' , query )
} else {
handle ( req , res , parsedUrl )
} } ) . listen ( 3000 , ( err ) => {
if ( err ) throw err
console . log ( '> Ready on http://localhost:3000' )
} )
} ) Wenn Sie das nächste Projekt als statische HTML-App exportieren, erstellen Sie im Basisverzeichnis eine Skriptdatei des Next-Sitemap-Generators.
Das Option pagesDirectory sollte auf den Ausgangsordner der statischen Dateien verweisen.
Führen Sie nach dem Generieren der Ausgabedateien node your_nextjs_sitemap_generator.js aus, um die Sitemap zu generieren.
Wenn Ihre Seiten statisch bedient werden, müssen Sie die Option allowFileExtensions als true einstellen, damit die Seiten die Erweiterung enthalten. Die meisten Fälle sind .html .
getStaticPaths Wenn Sie next@^9.4.0 verwenden, können Sie Ihre Website mit GetStaticPaths konfigurieren, um Seiten auf dynamischen Routen vorzubereiten. Um diese zu Ihrem Sitemap hinzuzufügen, müssen Sie die BUSE_ID -Datei in Ihre Konfiguration laden, um das generierte Build -Verzeichnis mit Statikseiten im Inneren zu erreichen, während Sie alles ausschließen, was keine statischen Seiten sind:
const sitemap = require ( "nextjs-sitemap-generator" ) ;
const fs = require ( "fs" ) ;
const BUILD_ID = fs . readFileSync ( ".next/BUILD_ID" ) . toString ( ) ;
sitemap ( {
baseUrl : "https://example.com" ,
// If you are using Vercel platform to deploy change the route to /.next/serverless/pages
pagesDirectory : __dirname + "/.next/server/static/" + BUILD_ID + "/pages" ,
targetDirectory : "public/" ,
ignoredExtensions : [ "js" , "map" ] ,
ignoredPaths : [ "assets" ] , // Exclude everything that isn't static page
} ) ; // your_nextjs_sitemap_generator.js
const sitemap = require ( "nextjs-sitemap-generator" ) ;
sitemap ( {
alternateUrls : {
en : "https://example.en" ,
es : "https://example.es" ,
ja : "https://example.jp" ,
fr : "https://example.fr" ,
} ,
baseUrl : "https://example.com" ,
ignoredPaths : [ "admin" ] ,
extraPaths : [ "/extraPath" ] ,
pagesDirectory : __dirname + "\pages" ,
targetDirectory : "static/" ,
sitemapFilename : "sitemap.xml" ,
nextConfigPath : __dirname + "\next.config.js" ,
ignoredExtensions : [ "png" , "jpg" ] ,
pagesConfig : {
"/login" : {
priority : "0.5" ,
changefreq : "daily" ,
} ,
} ,
sitemapStylesheet : [
{
type : "text/css" ,
styleFile : "/test/styles.css" ,
} ,
{
type : "text/xsl" ,
styleFile : "test/test/styles.xls" ,
} ,
] ,
} ) ;
console . log ( `✅ sitemap.xml generated!` ) ;
AlternateURLS : Sie können die alternativen Domänen hinzufügen, die der verfügbaren Sprache entsprechen. (Optional)
BaseURL : Die URL, die sie zu Beginn jeder Seite verwendet wird.
IgnoreIndexfiles : Ob die Indexdatei in der URL oder nur in Verzeichnis mit dem Schrägstrich (optional) sein sollte, das endet.
IgnoredPaths : Datei oder Verzeichnis nicht zu kartieren (wie Administratorrouten). (Optional)
Extrapathen : Array von zusätzlichen Pfaden, die in die Sitemap aufgenommen werden (auch wenn nicht in PagesDirectory) (optional)
IgnoredExtensionen : Dateien nach Erweiterung ignorieren (optional)
PagesDirectory : Das Verzeichnis, in dem NextJS -Seiten leben. Sie können ein anderes Verzeichnis verwenden, während es sich um die nächsten Seiten handelt. Es muss ein absoluter Weg sein .
TargetDirectory : Das Verzeichnis, in dem Sitemap.xml geschrieben wird.
SitemaPfilename : Der Dateiname für die Sitemap. Standardmäßig von sitemap.xml . (Optional)
PagesConfig : Objektkonfiguration von Priorität und ChangeFreq pro Route. Akzeptiert Regex -Muster (optional) Pfadschlüssel müssen Kleinbuchstaben sein
SitemapStylesheet : Array von Stilobjekten, die auf Sitemap angewendet werden. (Optional)
NEXTCONFIGPATH (verwendet für dynamische Routen): Ruft exportPathMap auf, wenn er aus nextConfigPath -JS -Datei exportiert wird.
Sehen Sie sich dies an, um zu verstehen, wie es geht (https://nextjs.org/docs/api-reference/next.config.js/exportpathmap) (optional)
ALLGESTELLUNGEN (für statische Anwendungen verwendet): Stellen Sie sicher, dass die Dateierweiterung mit dem Pfad in der Sitemap angezeigt wird. Wenn Sie NextConfigPath mit ExporttrailingSlash in der nächsten Konfiguration verwenden, werden zulässt FileExtensionen ignoriert. (Optional)
Im Moment entspricht die IgnoredPaths , was auch immer das kinnezielle Kino für Dateien oder Verzeichnisse gibt. In den nächsten Versionen wird dies repariert.