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

Next.js动态路由未正常工作:访问时出现页面未找到错误求助

Next.js动态路由404问题排查与解决

核心排查与修复步骤

  • 确认路由结构合法性
    必须保证路由文件夹结构为app/something/[id]/page.tsx:[id]是独立文件夹,内部的page.tsx作为该动态路由的页面组件,不能将[id]直接作为文件名。

  • 参数接收逻辑正确性
    在page.tsx中需正确解构params对象获取id,示例代码:

    // app/something/[id]/page.tsx
    export default function DynamicPage({ params }: { params: { id: string } }) {
      // 这里可调用Django API,比如用fetch请求`${process.env.NEXT_PUBLIC_DJANGO_API}/something/${params.id}`
      return <div>当前ID:{params.id}</div>;
    }
    
  • 客户端跳转路径检查
    使用next/link跳转时,确保href是拼接后的动态路径,示例:

    import Link from 'next/link';
    
    // item.id为从数据中获取的实际ID值
    <Link href={`/something/${item.id}`}>查看详情</Link>
    

    禁止硬编码路径(如/something/id),必须用模板字符串拼接真实ID。

  • 静态生成配置冲突处理
    如果page.tsx中添加了generateStaticParams函数,它只会预生成指定ID对应的路径,未预生成的ID访问会触发404。若需完全动态路由,直接删除该函数即可,Next.js默认会动态渲染所有未预生成的路径。

  • 部署服务器路由配置(非Vercel场景)
    若部署到Nginx等第三方服务器,需配置服务器将所有路由请求转发至Next.js入口文件,避免服务器直接返回404。Nginx配置示例:

    location / {
      try_files $uri $uri/ /index.html;
    }
    
  • API请求路径验证
    调用Django API时使用绝对路径(如结合环境变量process.env.NEXT_PUBLIC_DJANGO_API_URL拼接),避免相对路径在客户端请求时出现404,导致页面渲染失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:09:54