module communauté-communauté / plan du site: module plan du site Nuxt.js
4.9 (98%) 32 votes
 

module communauté-communauté / plan du site: module plan du site Nuxt.js

npm (balisé)
Téléchargements
Créer un statut
Condition de couverture
Licence

Créez ou utilisez automatiquement une puissante carte website.xml pour les projets Nuxt.js!

📖 Fournir des notes

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.vuesont 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:
    1. sitemap.hostname Valeur de la vôtre nuxt.config.js
    2. build.publicPath Valeur de la vôtre nuxt.config.js (.️ coupes)
    3. 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.

.️ Utilisation de 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

Contributeurs

module communauté-communauté / plan du site: module plan du site Nuxt.js
4.9 (98%) 32 votes