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

Next.js 13多语言网站持续重定向至已删除的本地化页面

解决Next.js App Router国际化路由死循环/卡顿问题

核心排查与修复步骤

  • 彻底清理项目缓存与依赖:
    执行以下命令完全清除残留缓存,解决跨项目污染问题:

    rm -rf .next node_modules package-lock.json yarn.lock
    npm install
    npm run build
    
  • 修正配置参考错误:
    你当前参考的是Pages Router的国际化文档,App Router的配置逻辑完全不同:

    • 删除next.config.js中Pages Router专属的i18n配置字段
    • 确保路由结构遵循App Router规范:app/[lang]/page.js(如app/en/page.js、app/zh/page.js)
  • 排查中间件重定向逻辑:
    死循环几乎都是中间件(middleware.js)的语言检测逻辑错误导致:

    • 检查是否存在无限重定向:比如未排除已匹配语言前缀的路由,强制跳转到默认语言时连目标路由本身也重复跳转
    • 示例错误逻辑:所有请求都重定向到/en,包括/en路径,导致死循环
    • 修正方向:先判断当前路径是否包含有效语言前缀,再执行重定向操作
  • 清空浏览器存储:
    部分国际化方案会将语言偏好存在本地存储或Cookie中,残留的旧值可能引发异常跳转。在浏览器开发者工具中清空Local Storage和Cookies,重启浏览器后重试。

验证方法

  1. 新建一个干净的Next.js App Router项目,仅添加最基础的国际化路由结构
  2. 启动开发服务测试路由跳转是否正常
  3. 逐步迁移原有项目的逻辑到新项目,每添加一部分就测试一次,定位出导致死循环的代码块

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:47:05