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

Next.js SSG国际化配置下defaultLocale出现子路径重复页面是特性还是BUG?

这是Next.js的预设特性,不属于BUG。

设计逻辑说明

Next.js的i18n路由默认对defaultLocale做了双重路径兼容设计,核心是为了保障迁移兼容性和路由容错性:
官方文档中提到的「defaultLocale对应页面渲染在根路径」是默认的首选路由展示规则,但框架本身默认保留了带defaultLocale前缀的路径作为可访问的备用路径,避免老项目接入i18n后,已对外分发的带前缀外链出现404错误。
你在getStaticPaths中仅传入不带locale属性的路径时,框架内部会自动为该路径生成两条对应静态页面:

  • 根路径下的/blog/foo(符合预期的defaultLocale默认路径)
  • 带defaultLocale前缀的/sv/blog/foo(兼容备用路径)
    两者静态内容完全一致,属于框架预期内的生成逻辑。

禁用该特性的方案

如果不需要保留带defaultLocale前缀的路径,可在next.config.js的i18n配置中新增prefixDefault: false配置项:

i18n: {
  locales: ['sv', 'en'],
  defaultLocale: 'sv',
  prefixDefault: false
},

配置后构建时不会再生成带defaultLocale前缀的静态路径,用户访问/sv/blog/foo时会自动308重定向到根路径的/blog/foo。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:30:05