Strapi/NextJs动态路线网站Map

hlswsv35  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(155)

我正在使用boazpoolman的strapi-sitemap-plugin为我的NextJs应用程序开发一个站点Map。
/文章/[类别]/[文章]
该插件允许自定义URL如下:

我不知道如何将这些信息传递给插件。这是一个很大的错误,但我想避免为NextJs应用程序生成站点Map所涉及的大量开发。

0lvr5msh

0lvr5msh1#

我推荐你使用“iamvishnusankar”的下一个网站Map生成器。GitHub:“https://github.com/iamvishnusankar/next-sitemap“安装软件包“npm i下一个网站Map”或“纱添加下一个网站Map”。
在ENV文件中创建SITE_URL属性,并将该值设置为公共域。如果要测试本地,请在“.env.local”文件中创建此属性。还要将这些值添加到部署设置中的环境变量中。

SITE_URL=https://my-url.com/

然后在根文件夹中创建一个“next-sitemap.config.js”文件,并将以下代码粘贴到其中。7000”,如果不是,你可以把它留掉。同时将更改频率设置为“每日”。

/** @type {import('next-sitemap').IConfig} */
module.exports = {  
  siteUrl: process.env.SITE_URL || 'https://my-url.com/',
  generateRobotsTxt: true,
  changefreq: 'daily',
  priority: 0.7,
  sitemapSize: 7000,

  transform: async (config, path) => {
    return {
      loc: path, 
      changefreq: config.changefreq,
      priority: config.priority,
      lastmod: config.autoLastmod ? new Date().toISOString() : undefined,
      alternateRefs: config.alternateRefs ?? [],
    }
  },

  additionalPaths: async (config) => [
    await config.transform(config, '/additional-page'),
  ],
  robotsTxtOptions: {
    policies: [
      {
        userAgent: '*',
        allow: '/',
      },
      {
        userAgent: 'test-bot',
        allow: ['/path', '/path-2'],
      },
      {
        userAgent: 'black-listed-bot',
        disallow: ['/sub-path-1', '/path-2'],
      },
    ],
    additionalSitemaps: [
      'https://doc.my-url.com/', //Add other releases or sub domains here
    ],
  },
}

然后在公用文件夹中创建一个“robot.txt”文件,并设置合适的值。

# *
User-agent: *
Allow: /

# test-bot
User-agent: test-bot
Allow: /path
Allow: /path-2

# black-listed-bot
User-agent: black-listed-bot
Disallow: /sub-path-1
Disallow: /path-2

# Host
Host: https://my-url.com

# Sitemaps
Sitemap: https://my-url.com/sitemap.xml
Sitemap: https://docs.my-url.com/sitemap.xml

最后,运行“npm run build”或“yarn run build”。这将在公用文件夹中生成sitemap-0.xml和/或sitemal.xml。

相关问题