使用@nuxtjs/sitemap 动态生成站点地图

时间:2021-06-24 11:35:29

标签: nuxt.js sitemap

我使用 @nuxtjs/sitemap 作为我的站点地图生成器,一些路由是由 ajax 提供的。

每当有人访问 /sitemap.xml 时,我都需要它来获取最新的 api 数据,是否可以使用此库来实现?

我在 nuxt.config.js 中的配置:

{
  sitemap: {
    defaults: {
      lastmod: new Date(),
    },
    routes: async () => {
      const { data } = await axios.get(
        'https://jsonplaceholder.typicode.com/posts'
      )
      return data.map((post) => `/posts/${post.id}`)
    },

    cacheTime: 1,
  },
}

当我激活我的服务器并访问 /sitemap.xml 时,

它显示具有正确lastmod的最新路线,

之后就不会再更新了,

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您的设置 looks fine 到目前为止效果很好,问题是站点地图可能是在构建期间创建的。 所以,如果:

  • target: static >> yarn generate && yarn start
  • target: server(默认)>> yarn build && yarn start

这在实际场景中应该可以正常工作,因为您会将一些新代码推送到您的托管平台,它会构建您的新应用。
因此,它将创建新的更新站点地图。


也可能是因为默认 cacheTime 设置为 15 分钟。也许尝试将其更改为更小的内容。


您的网站是否应该在没有新构建的情况下具有动态移动的部分,比如依赖于高度动态的 API 或类似的东西?
如果是这种情况,也许可以查找这个 Github 问题:https://github.com/nuxt-community/sitemap-module/issues/186