我们的需求是让少部分页面(如主页、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