nuxt如何生成动态路由

How nuxt generate dynamic routes

正如 nuxt 的文档所说:

Dynamic routes are ignored by the generate command (yarn generate). Nuxt does not know what these routes will be so it can't generate them.

他们有一个为动态路由创建静态 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处理的吗?

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

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

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