module communauté-communauté / plan du site: module plan du site Nuxt.js
Créez ou utilisez automatiquement une puissante carte website.xml pour les projets Nuxt.js!
Caractéristiques
- Module basé sur génial package sitemap.js
❤️ - Créer plan du site or index de la carte
- Ajouter automatiquement des itinéraires statiques à chaque plan de site
- Aidez-moi i18n sortie nuxt-i18n (dernière version)
- Cela fonctionne avec tout le (SSR, SPA, toa)
- Pour 2.x et plus
Table des matières
Installation
npm install @nuxtjs/sitemap
or
Configurer
Ajouter @nuxtjs/sitemap
pour modules
une partie de la vôtre nuxt.config.js
fichier:
{
modules: [
'@nuxtjs/sitemap'
],
}
information:
Si vous utilisez d’autres modules (par ex.nuxt-i18n
), annoncez toujours le module de carte à la fin de la colonne
km.modules: ['nuxt-i18n', '@nuxtjs/sitemap']
Configuration
Ajouter une configuration et un fichier standard sitemap
propriété:
// nuxt.config.js
{
modules: [
'@nuxtjs/sitemap'
],
sitemap: {
// options
},
}
Le critère d’option du module peut être:
Object
Un produit de cartographie de site ou un index de carte:
Array
Liste de plan du site ou caractéristiques des éléments de carte:
{
sitemap: [
{
// ...
},
{
// ...
},
],
}
Function
Fonctionnalité qui restaure une configuration de plan de site valide:
{
sitemap: function () {
return {
// ...
}
},
}
Boolean
Vous pouvez désactiver le module de plan du site avec une valeur booléenne pour false
:
Utilise le
Configurer le plan du site
Par défaut, le plan du site est défini comme suit: /sitemap.xml
Toutes les méthodes statiques (par ex. /pages/about.vue
sont ajoutés directement au plan du site, mais vous pouvez exclure chacun d’eux et exclude
propriété.
De manière puissante (par ex. /pages/_id.vue
), vous devez déclarer et routes
propriété. Cette option peut être un tableau ou une fonction. De plus, les méthodes décrites dans generate.routes
sera automatiquement utilisé pour la cartographie du site.
// nuxt.config.js
{
sitemap: {
hostname: 'https://example.com',
gzip: true,
exclude: [
'/secret',
'/admin/**'
],
routes: [
'/page/1',
'/page/2',
{
url: '/page/3',
changefreq: 'daily',
priority: 1,
lastmod: '2017-06-30T13:30:00.000Z'
}
]
}
}
Configurer l’indicateur de carte
Pour publier l’index des cartes et ses plans de site liés, utilisez sitemaps
propriété.
Par défaut, l’index de la carte est défini comme suit: /sitemapindex.xml
Tout sitemaps
la colonne peut être définie avec ses options de mappage.
// nuxt.config.js
{
sitemap: {
hostname: 'https://example.com',
lastmod: '2017-06-30',
sitemaps: [
{
path: '/sitemap-foo.xml',
routes: ['foo/1', 'foo/2'],
gzip: true
}, {
path: '/folder/sitemap-bar.xml',
routes: ['bar/1', 'bar/2'],
exclude: ['/**']
}
]
}
}
Configurer une liste de plans de site
Pour publier une liste de plans de site, utilisez array
configurer chaque carte et sa configuration.
Vous pouvez combiner le mappage avec la configuration du mappage.
// nuxt.config.js
{
sitemap: [
{
path: '/sitemap-products.xml',
routes: [
// array of URL
]
}, {
path: '/sitemap-news.xml',
routes: () => // promise or function
}, {
path: '/sitemapindex.xml',
sitemaps: [{
// array of Sitemap configuration
}]
}
}
}
Options de la carte
routes
(facultatif) – colonne | travail
thé routes
Le paramètre suit le même chemin que generate
configuration.
Voir également des exemples de déclaration d’itinéraire ci-dessous.
path
(facultatif) – chaîne
Le chemin d’accès à l’URL de la carte créée.
hostname
(facultatif) – chaîne
- Défaut:
sitemap.hostname
Valeur de la vôtrenuxt.config.js
build.publicPath
Valeur de la vôtrenuxt.config.js
(.️ coupes)os.hostname()
OMS produire or spa mode, ou de force selon la requête URL (headers.host
) à l’intérieur ssr mode
Cette valeur est doit pour un fichier de carte de génération, et vous devez le fournir clairement produire or spa mode.
build.publicPath
si la valeur par défaut est réduite et sera supprimée au moment de la version v3.0.
Pour le désactiver dans la version actuelle, définissez une valeur fausse (par ex. hostname: false
).
cacheTime
(facultatif) – nombre
- Défaut:
1000 * 60 * 15
(15 minutes)
Définit à quoi ressemble un plan de site la route 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 vide, routes
sera réévalué (voir la section déclaration de chemin).
Cette option n’est disponible que dans ssr mode.
etag
(facultatif) – quelque chose
Activez le titre d’épargne etag dans le plan du site (voir les documents etag pour les options possibles).
Désactiver le etag pour un ensemble de plans de site etag: false
Cette option n’est disponible que dans ssr mode.
exclude
(facultatif) – chaîne de caractères
thé exclude
Le paramètre est un tableau de systèmes glob pour supprimer les chemins statiques d’une carte générée.
filter
(facultatif) – fonction
Si filter
l’option est définie comme active, tous les canaux y seront filtrés.
Cette option est nécessaire pour personnaliser ou étendre les services du module, avant la génération de la carte.
Exemples:
// nuxt.config.js
// 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
(facultatif) – booléen
Permettre la création de .xml.gz
map compressée par gzip.
xmlNs
(facultatif) – chaîne
Remplacez les noms XML en révoquant toutes les options par défaut xmlns
réputation dans <urlset>
fonctionnalité.
// nuxt.config.js
{
sitemap: {
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"'
}
}
xslUrl
(facultatif) – chaîne
Chemin d’URL du fichier XSL pour définir le style de plan de site.
trailingSlash
(facultatif) – booléen
Ajoutez un suivi pour chaque chemin d’URL (par exemple /page/1
=> /page/1/
)
information: Pour éviter de détecter des copies de contenu des robots d’exploration, vous devez configurer la redirection HTTP 301 entre deux URL (voir module de redirection ou module de module de barre oblique).
i18n
(facultatif) – chaîne | quelque chose
Configurer la prise en charge des méthodes intégrées à partir de nuxt-i18n module.
Si i18n
option configurée, le module de plan du site ajoutera automatiquement l’URL de la page de base de chaque page dans le fichier <loc>
et un enfant <xhtml:link>
les entrées répertorient tous les types de langue / zone de la page, y compris elle-même (voir les guides cartographiques Google).
Exemple:
// nuxt.config.js
{
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>
defaults
(facultatif) – quelque chose
thé defaults
paramètre définit les options par défaut pour toutes les options.
// nuxt.config.js
{
sitemap: {
defaults: {
changefreq: 'daily',
priority: 1,
lastmod: new Date()
}
}
}
Voir les options disponibles: https://github.com/ekalinin/sitemap.js/blob/4.1.1/README.md#sitemap-item-options
Options de mappage
path
(facultatif) – chaîne
- Défaut:
/sitemapindex.xml
Le chemin vers l’URL de l’index du plan du site développé.
hostname
(facultatif) – chaîne
Téléchargez le fichier hostname
valeur pour chaque plan de site lié à l’index de la carte.
sitemaps
– un tableau d’un objet
Paramètre de configuration de carte lié aux index de plan de site.
// nuxt.config.js
{
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 plus d’exemples ci-dessus.
lastmod
(facultatif) – chaîne
Téléchargez le fichier lastmod
valeur pour chaque plan de site lié à l’index de la carte.
En outre, lastmod
peut être défini pour chaque plan de site lié.
// nuxt.config.js
{
sitemap: {
lastmod: "2020-01-01",
sitemaps: [
{
path: '/sitemap-foo.xml',
lastmod: "2020-01-02"
}, {
path: '/sitemap-bar.xml'
}
]
}
}
etag
(facultatif) – quelque chose
Activez le titre d’épargne etag dans l’index du plan du site (voir les documents texte pour les options possibles).
Désactiver etag pour un ensemble d’index de carte etag: false
Cette option n’est disponible que dans ssr mode.
gzip
(facultatif) – booléen
Permettre la création de .xml.gz
index de la carte pressé par gzip.
xmlNs
(facultatif) – chaîne
Remplacez les noms XML en invalidant toutes les options par défaut xmlns
réputation dans <sitemapindex>
fonctionnalité.
// nuxt.config.js
{
sitemap: {
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',
sitemaps: [...]
}
}
xslUrl
(facultatif) – chaîne
Chemin d’accès URL du fichier XSL pour définir l’index du plan de site.
Résolution de voie
Par défaut, les routes dynamiques sont ignorées par le module de mappage.
Nuxt ne peut pas fournir directement ce type de disque dur.
Exemple:
-| pages/
---| index.vue --> static route
---| about.vue --> static route
---| users/
-----| _id.vue --> dynamic route
Si vous souhaitez que le module ajoute des paramètres de chemin et d’alimentation, vous devez définir le tableau de chemins dynamiques.
km. ajouter des moyens de /users/:id
en configuration:
À partir de la liste statique
// nuxt.config.js
{
sitemap: {
routes: ['/users/1', '/users/2', '/users/3']
}
}
Du travail qui revient à la promesse
// nuxt.config.js
const axios = require('axios')
{
sitemap: {
routes: async () => {
const { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
return data.map((user) => `/users/${user.username}`)
}
}
}
Crochet
Hook est le public des événements Nuxt. Apprendre encore plus
Vous pouvez enregistrer le hook à certains événements du cycle de vie.
Crochet | Bouge toi | Quand |
---|---|---|
plan du site: créer: avant | (nuxt, Options du plan du site) | Hook avant la génération du site |
plan du site: générer: terminer | (nuxt) | Le crochet sur la génération de carte est terminé |
Licence
Licence MIT