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

Next.js 13.4.4 App Router下not-found.tsx无限刷新问题求助

解决Next.js 13.4.4 App Router中not-found.tsx无限刷新的问题

可能的原因及修复方案

1. 路由重定向逻辑冲突

检查项目中的middleware.ts或路由配置,是否存在错误的重定向规则——比如将不存在的路由循环重定向到某个路径,导致触发not-found后又被重新定向,形成无限刷新的循环。

  • 修复:排查重定向逻辑,确保对不存在的路由没有循环重定向规则,避免404页面被再次导向会触发404的路径。

2. 全局组件的错误导航逻辑

检查layout.tsx等顶层全局组件,是否有在useEffect中执行router.push这类自动导航的代码。如果该逻辑没有排除404页面场景,会导致进入not-found后重复触发导航,引发无限刷新。

  • 修复:在导航逻辑中添加路径判断,避免在404页面执行导航操作。示例代码:
'use client';
import { useRouter, usePathname } from 'next/navigation';
import { useEffect } from 'react';

export default function RootLayout({ children }) {
  const router = useRouter();
  const pathname = usePathname();

  useEffect(() => {
    // 排除404页面,避免触发重复导航
    if (pathname !== '/not-found' && /* 你的其他业务条件 */) {
      // 这里放置你的导航逻辑
    }
  }, [pathname, router]);

  return <html><body>{children}</body></html>;
}

3. Next.js版本已知Bug

Next.js 13.4.x部分版本存在App Router下not-found组件的刷新异常问题,13.4.4属于可能受影响的版本范围。

  • 修复:升级Next.js至最新稳定版本(如13.4.19及以上),官方后续版本已修复这类路由相关Bug。执行升级命令:
npm install next@latest
# 或使用yarn
yarn add next@latest

4. 开发环境缓存问题

开发环境中,服务器或浏览器缓存可能导致路由判断异常,触发无限刷新。

  • 修复:
    • 停止开发服务器,删除项目根目录下的.next文件夹以及node_modules/.cache目录;
    • 重新启动开发服务器:npm run dev或yarn dev;
    • 在浏览器中强制刷新页面(Ctrl+F5),清除浏览器缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:43:11