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

Next.js执行npm run build时,/blog/[id]页面数据收集失败的原因?

问题分析:Next.js构建时Failed to collect page data from /blog/[id]错误原因

以下是你的代码:

const Details = ({ userData }) => {
  return (
    <Layout>
      <h1>{userData?.header}</h1>
    </Layout>
   )
}

export default Details


export const getStaticPaths = async () =>{
  const res = await fetch(`http://localhost:3000/api/blogs`);
  const blogs = await res.json();
  const ids = blogs.map((blog) => blog.id);
  const paths = ids.map((id)=>({params:{id: id.toString()}}));

  return{
    paths,
    fallback:false,
  };
};

export const getStaticProps = async (context) =>{
  const res = await fetch(`http://localhost:3000/api/blogs/${context.params.id}`);
  const userData = await res.json();

  return{
    props:{
      data,
      userData,
    }
  }
}

执行npm run build时出现错误:

Error: Failed to collect page data from /blog/[id]

错误原因主要有三点:

  • 未定义变量触发运行时错误:getStaticProps返回的props里包含了data,但这个变量从未被声明或赋值,会直接抛出ReferenceError,中断页面数据收集流程。
  • 构建阶段无法访问本地API服务:执行npm run build时,本地开发服务器(localhost:3000)并未启动,fetch请求会失败,导致getStaticPaths无法获取博客ID生成路由路径,getStaticProps也无法获取单篇博客数据。
  • fallback设置放大了问题:getStaticPaths中fallback: false要求所有路由必须在构建时生成,一旦API请求失败无法生成有效paths,就会直接触发页面数据收集失败的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:05:09