You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js构建时是否会生成重复的SSG静态页面?

结论:不会出现重复生成SSG页面的问题,你的认知存在偏差。

  • 首先index.js属于独立的根路由,它的getStaticProps仅负责生成首页这1个静态页面,调用get10PostsFromDB获取10篇文章只是为了填充首页的文章列表内容,不会生成任何单篇文章的详情页。
  • 动态路由[post].js的getStaticPaths返回的10个路径,才是触发构建时生成10篇文章对应详情页的逻辑,和首页的生成流程完全独立,不存在重复生成的情况。

现有代码的可优化点:

  1. 你当前[post].js的getStaticProps里直接写死了notFound: true,这个配置会导致所有访问详情页的请求都返回404,正确写法应该是判断getASinglePostFromDB返回为空的时候才返回notFound: true,查询到有效文章时不要携带该配置即可。
  2. 你设置的revalidate: 1代表页面访问后最多1秒就会触发后台增量更新,属于极高的更新频率,如果你的博客更新频率没有这么高,可以适当调大该数值降低数据库和服务器的压力。
  3. 你配置的fallback: 'blocking'是合理的,后续新增文章不需要全量重建站点,首次访问新文章路径时会在服务端生成页面并缓存,之后访问就和预构建的静态页面表现一致。

内容的提问来源于stack exchange,提问作者Zak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:06:02