Options de plan du site
routes
(optionnel) - array | function
- Défaut:
[]
ou la valeurgenerate.routes
depuis votrenuxt.config.js
Le paramètre routes
suit la même logique que la configuration generate
.
Voir aussi la déclaration des routes des exemples ci-dessous.
path
(optionnel) - chaine de caractère
- Défaut:
/sitemap.xml
Le chemin de l'URL du plan de site généré.
hostname
(optionnel) - chaine de caractère
- Défaut:
sitemap.hostname
valeur de votrenuxt.config.js
build.publicPath
valeur de votrenuxt.config.js
(⚠️ obsolète)os.hostname()
dans generate ou le mode spa, ou dynamiquement en fonction de l'URL de la demande (headers.host
) dans le mode ssr
Cette valeur est obligatoire pour le fichier de génération de plan de site, et vous devez la fournir explicitement en mode generate ou spa.
L'utilisation de build.publicPath
comme valeur par défaut est obsolète et sera supprimée à la version v3.0.
Pour le désactiver sur la version actuelle, définissez une valeur falsifiée (par exemple, hostname: false
).
cacheTime
(optionnel) - nombre
- Défaut:
1000 * 60 * 15
(15 Minutes)
Définit la fréquence à laquelle le plan du site routes doit être mis à jour (valeur en millisecondes). La définition d'une valeur négative désactivera le cache.
Veuillez noter qu'après chaque invalidation, les routes
seront évaluées à nouveau (voir la section déclaration de routes).
Cette option n'est disponible qu'en mode ssr.
etag
(optionnel) - objet
- Défaut:
render.etag
valeur de votrenuxt.config.js
Activer l'en-tête du cache etag sur le plan du site (voir la documentation etag pour les options possibles).
Pour désactiver etag pour le plan de site défini etag: false
Cette option n'est disponible qu'en mode ssr.
exclude
(optionnel) - tableau de chaine de caractère
- Défaut:
[]
Le paramètre exclude
est un tableau de glob patterns pour exclure les routes statiques du plan de site généré.
filter
(optionnel) - fonction
- Défaut:
undefined
Si l'option filter
est définie comme une fonction, toutes les routes seront filtrées à travers elle.
Cette option est utile pour personnaliser ou étendre les fonctionnalités du module, avant la génération du plan de site.
Exemples:
// Filter routes by language
{
sitemap: {
filter ({ routes, options }) {
if (options.hostname === 'example.com') {
return routes.filter(route => route.locale === 'en')
}
return routes.filter(route => route.locale === 'fr')
}
}
}
// Add a trailing slash to each route
{
sitemap: {
filter ({ routes }) {
return routes.map(route => {
route.url = `${route.url}/`
return route
})
}
}
}
gzip
(optionnel) - boolean
- Défaut:
false
Activez la création du plan de site .xml.gz
compressé avec gzip.
xmlNs
(optionnel) - chaine de caractère
- Défaut:
undefined
Définissez les espaces de noms XML en remplaçant tous les attributs par défaut xmlns
dans l'élément <urlset>
.
{
sitemap: {
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"'
}
}
xslUrl
(optionnel) - chaine de caractère
- Défaut:
undefined
The URL path of the XSL file to style the sitemap.
trailingSlash
(optionnel) - booléen
- Défaut:
false
Ajouter une barre oblique à chaque URL de route (ex. /page/1
=> /page/1/
)
remarque: Pour éviter la détection de contenu dupliqué des robots d'exploration, vous devez configurer une redirection HTTP 301 entre les 2 URLs (voir redirect-module ou nuxt-trailingslash-module).
i18n
(optionnel) - chaine de caractère | objet
- Défaut:
undefined
Configurer la prise en charge des routes localisées à partir du module nuxt-i18n
Si l'option i18n
est configurée, le module de plan de site ajoutera automatiquement l'URL de la locale par défaut de chaque page dans un élément <loc>
, avec des entrées enfants <xhtml:link>
listant toutes les variantes de langue/locale de la page y compris elle-même (voir les Consignes relatives au plan du site Google).
Exemple:
{
modules: [
'nuxt-i18n',
'@nuxtjs/sitemap'
],
i18n: {
locales: ['en', 'es', 'fr'],
DefaultLocale: 'en'
},
sitemap: {
hostname: 'https://example.com',
// shortcut notation (basic)
i18n: true,
// nuxt-i18n notation (advanced)
i18n: {
locales: ['en', 'es', 'fr'],
routesNameSeparator: '___'
}
}
}
<url>
<loc>https://example.com/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/"/>
</url>
<url>
<loc>https://example.com/es/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/"/>
</url>
<url>
<loc>https://example.com/fr/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/"/>
</url>
Default
(optionnel) - objet
- Défaut:
{}
Le paramètre Default
définit les options pour toutes les routes.
{
sitemap: {
Default: {
changefreq: 'daily',
priority: 1,
lastmod: new Date()
}
}
}
Options de plan du site
path
(optionnel) - chaine de caractère
- Défaut:
/sitemapindex.xml
Chemin de l'URL de l'index de sitemap généré.
hostname
(optionnel) - chaine de caractère
Définissez la valeur hostname
sur chaque plan de site lié à son index de plan de site.
sitemaps
- tableau d'objets
- Défaut:
[]
Tableau de configuration du plan du site lié à l'index du plan du site.
{
sitemap: {
path: '/sitemapindex.xml',
hostname: 'https://example.com',
sitemaps: [
{
path: '/sitemap-foo.xml',
// ...
}, {
path: '/folder/sitemap-bar.xml',
// ...
}
]
}
}
<!-- generated sitemapindex.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-foo.xml</loc>
</sitemap>
<sitemap>
<loc>https://example.com/folder/sitemap-bar.xml</loc>
</sitemap>
</sitemapindex>
Voir les exemples au dessus.
lastmod
(optionnel) - chaine de caractère
Définissez la valeur lastmod
sur chaque plan de site lié à son index de plan de site.
De plus, la valeur lastmod
peut être définie pour chaque plan de site lié.
{
sitemap: {
lastmod: "2020-01-01",
sitemaps: [
{
path: '/sitemap-foo.xml',
lastmod: "2020-01-02"
}, {
path: '/sitemap-bar.xml'
}
]
}
}
etag
(optionnel) - objet
- Défaut:
render.etag
valeur de votrenuxt.config.js
Activer l'en-tête du cache etag sur l'index du plan de site (Voir la documentation etag pour les options possibles).
Pour désactiver etag pour l'ensemble d'index de plan de site, définissez etag: false
Cette option n'est disponible qu'en mode ssr.
gzip
(optionnel) - boolean
- Défaut:
false
Activez la création de l'index du plan de site .xml.gz
compressé avec gzip.
xmlNs
(optionnel) - chaine de caractère
- Défaut:
undefined
Définissez les espaces de noms XML en remplaçant tous les attributs par défaut xmlns
dans l'élément <sitemapindex>
.
{
sitemap: {
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',
sitemaps: [...]
}
}
xslUrl
(optionnel) - chaine de caractère
- Défaut:
undefined
Chemin d'accès URL du fichier XSL pour styliser l'index du plan de site.
Déclarations des routes
Par Défaut, les routes dynamiques sont ignorées par le module plan du site. Nuxt ne peut pas fournir automatiquement ce type de routes complexes.
Exemple:
-| pages/
---| index.vue --> static route
---| about.vue --> static route
---| users/
-----| _id.vue --> dynamic route
Si vous souhaitez que le module ajoute une route avec des paramètres dynamiques, vous devez définir un tableau de routes dynamiques.
ex. ajoutez des routes pour /users/:id
dans la configuration:
À partir d'une liste statique
{
sitemap: {
routes: ['/users/1', '/users/2', '/users/3']
}
}
À partir d'une fonction qui renvoie une promesse
const axios = require('axios')
{
sitemap: {
routes: async () => {
const { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
return data.map((user) => `/users/${user.username}`)
}
}
}