生成后在 Nuxt SPA 中使用动态路由

Posted

技术标签:

【中文标题】生成后在 Nuxt SPA 中使用动态路由【英文标题】:Use dynamic routes in Nuxt SPA after generating 【发布时间】:2021-02-21 23:10:06 【问题描述】:

我正在尝试在 Nuxt SPA 中使用动态路由。我知道如何在通用模式下使用动态路由,并且我知道如何在构建时使用函数生成它们,但我正在寻找不需要重新构建数据库中的每个新条目的东西。

我的网络应用程序允许用户创建内容(通过 Strapi 后端),这些内容应该可以立即以 www.domain.com/content/uniqe_id 之类的形式访问(无需重新构建项目) 这可能吗?我可以创建像 /content/index.vue 这样可以访问参数并获取正确内容的东西吗?

附带说明:出于多种原因,我更喜欢使用通用模式,但我在我的项目中使用 Three.js,使其工作的唯一方法是使用 SPA。我已经发布了here

【问题讨论】:

【参考方案1】:

如果您使用的是 SPA 模式,则不必担心动态路由,因为所有内容都在客户端上呈现。您唯一需要注意的是将您的生产服务器设置为始终重定向到您的index.html,这样您在访问其他页面时就不会收到 404。


如果您使用的是 Universal,您仍然可以生成一个 SPA 回退,用于在客户端处理您的动态路由,方法是将其添加到您的 nuxt.config.js

Docs

generate: 
  fallback: true,
  // ...
,

使用它,Nuxt 会生成一个 404.html,它将以 SPA 模式呈现页面,而不是显示 404,而其他路由则正常生成。

如果您想正确生成所有路由并具有即时访问权限,您可以使用此技术向用户显示您页面的临时 SPA 版本,直到页面重建。

【讨论】:

以上是关于生成后在 Nuxt SPA 中使用动态路由的主要内容,如果未能解决你的问题,请参考以下文章

重新加载页面后,Nuxt动态路由返回404

Nuxt.js 和内容丰富的网站无法正确生成动态路由

vue-router-auto动态生成路由插件

Nuxt.js:无法生成路由

Nuxt 中同一级别的多个动态路由可能吗?

Nuxt的动态路由及路由校验入门