首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Nuxt应用程序中为动态路由生成xml站点地图

在Nuxt应用程序中为动态路由生成xml站点地图
EN

Stack Overflow用户
提问于 2020-06-08 02:50:44
回答 2查看 3.4K关注 0票数 2

因此,我目前正在为一个具有多个店面的网站实现sitemaps。

我使用nuxt sitemap module为静态页面生成了一个/sitemap/sitemap.xml文件,比如主页、条款和条件以及隐私政策。

现在,该网站还包含每个店面的动态路线,例如:mysite.com/store1 & mysite.com/store2

当前的任务是为每个商店创建一个/sitemap.xml,因此最终结果类似于:mysite.com/store1/sitemap.xml

该sitemap将包含与商店相关的所有内容,包括每个产品的动态子路由。

我目前还不知道有什么可能的方法可以做到这一点,我已经搜索了很多,但我没有找到任何关于这个的东西。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-06-10 18:17:01

您可以创建站点地图索引,如下所示:

代码语言:javascript
运行
复制
{
  sitemap: {
    hostname: 'https://example.com',
    path: '/sitemap.xml',
    sitemaps: [
      {
        path: '/sitemap/sitemap.xml',
      },
      {
        path: '/store1/sitemap.xml',
        exclude: ['/**'],
        routes: () => { /* return array of url for store #1 */ }
      },
      {
        path: '/store2/sitemap.xml',
        exclude: ['/**'],
        routes: () => { /* return array of url for store #2 */ }
      }
    ]
  }
}

您将得到以下结果:

仅用于站点地图索引的所有静态路由的入口点crawlers)

  • /sitemap/sitemap.xml

  • /sitemap.xml =>动态路由#1

  • /store2/sitemap.xml =>

  • /sitemap.xml => => store #2
票数 2
EN

Stack Overflow用户

发布于 2020-07-03 18:00:14

试试这个,它对我很管用

代码语言:javascript
运行
复制
  sitemap: {
    path: '/sitemap.xml',
    hostname: process.env.BASE_URL,
    cacheTime: 1000 * 60 * 15,
    gzip: true,
    generate: false,
    sitemaps: [
      {
        path: '/sitemap/sitemap.xml',
      },
      {
        path: '/store1/sitemap.xml',
        exclude: [],
        routes: async () => {
            let apiUrl = 'your site url' // or API url
            const { data } = await axios.get(`${apiUrl}store1`)
            return data.data.map(v => `/${v.id}`)
          }
      },
      {
        path: '/store2/sitemap.xml',
        exclude: [],
        routes: async () => {
            let apiUrl = 'your site url' // or API url
            const { data } = await axios.get(`${apiUrl}store2`)
            return data.data.map(v => `/${v.id}`)
          }
      },
      {
        path: '/store3/sitemap.xml',
        exclude: [],
        routes: async () => {
            let apiUrl = 'your site url' // or API url
            const { data } = await axios.get(`${apiUrl}store3`)
            return data.data.map(v => `/${v.id}`)
          }
      },
    ]
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62250127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档