Next.js 13中not-found.tsx内<Link>标签失效原因咨询
Next.js中404页面(not-found.tsx)里标签失效的原因分析
路由边界的上下文隔离
在Next.js App Router模式下,not-found.tsx作为路由边界组件,会在路由匹配失败时启动一个独立的路由上下文。而Next.js的<Link>组件依赖当前页面的路由上下文来实现客户端导航,当处于这个隔离的404上下文时,路由上下文没有正确初始化,导致客户端导航逻辑无法触发。静态渲染环境的限制
如果你的404页面是静态生成的,<Link>组件的客户端导航逻辑缺少运行时的路由上下文支持,无法正常工作。而原生<a>标签是直接通过浏览器完成跳转,不依赖Next.js的路由运行环境,因此不受影响。特殊路由状态下的路径解析异常
即使使用绝对路径'/',在not-found页面的"未匹配"路由状态下,Next.js的路径解析机制会出现异常,<Link>组件无法正确识别根路径的跳转指令。原生<a>标签直接遵循浏览器的URL解析规则,不会受这个特殊状态影响。
内容的提问来源于stack exchange,提问作者Anurag Nepal
相关产品推荐
相关产品推荐

