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

问题描述 投票:0回答:1

我使用@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的最新路线,

但是之后就不会再更新了

我该怎么做?

vue.js nuxt.js sitemap
1个回答
3
投票

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

  • 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

© www.soinside.com 2019 - 2024. All rights reserved.