0

正如 nuxt 的文档所说:

generate 命令 (yarn generate) 会忽略动态路由。Nuxt 不知道这些路由将是什么,因此它无法生成它们。

他们有一个为动态路由创建静态 html 文件的解决方案:

generate: {
    routes () {
      return axios.get('https://my-api/users')
        .then((res) => {
          return res.data.map((user) => {
            return {
              route: '/users/' + user.id,
              payload: user
            }
          })
        })
    }
}

我的问题是:假设我们在生成 nuxt 时有 50 个用户,并且 nuxt 为每个用户创建 50 个静态 html。但用户数不是恒定的。例如一小时后,我们有 55 个用户。那么,nuxt 是如何处理的呢?或者说清楚:它是否由 nuxt 处理?

4

1 回答 1

2

不,它不会由 Nuxt 处理。生成模式将在运行命令时创建所有静态文件。

对于动态用户列表,您有以下解决方案:

  • 使用+ 一个在每个事件上nuxt generate触发一个新的外部钩子。 例如。每小时或在每个用户创建时使用一个 cron 选项卡来自动运行生成命令nuxt generate
  • 使用“spa”模式nuxt build && nuxt start --spa
    您可以将它作为生成器托管在任何静态 Web 提供商上,但您将失去 SEO 优势......
  • 使用“ssr”模式nuxt build && nuxt start --spa
    您将保持 SEO 优势,但您必须找到一个服务器提供商来在 Node.js 实例上托管您的 SSR 应用程序。
于 2020-04-29T08:21:42.330 回答