最近我正在重构一个基于 Vue3 和 Vite 的 SPA 项目,同时调研一些可用的技术方案。
我们的需求是让少部分页面(如主页、About Us 、Contact 、Terms of Use 等)在构建时生成纯静态页面;而其余页面使用动态路由(例如 “/username” 或 “/username/projectname”),前端通过路由参数动态获取数据,类似传统的 SPA 模式。
由于觉得 SSR 的实现需要额外的服务器支持,显得过于繁重,因此希望能采用一种仅靠 Nginx 就可以部署的方案。本质上,我们希望将 SPA 中的一部分页面静态化,以便于 SEO 优化。
然而,经过一番搜索后发现,Next.js 最新的 App Router 在使用静态生成(output=export
)时居然不支持动态路由。感觉这种需求非常常见和基础,却没有被很好地支持。
从中感受到,Next.js 似乎为了配合 Vercel 的托管业务,有意推动用户更多地使用 SSR 。
相关 GitHub 讨论: https://github.com/vercel/next.js/discussions/55393
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.