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

Svelte生产构建报错:预渲染失败(错误码1),请求排查指导

解决Svelte Kit构建时预渲染404 "/"的问题

问题背景

本地通过npm run dev运行开发模式正常,但执行npm run build时出现预渲染404错误,提示根路径(/)无法找到。

排查与解决步骤


1. 检查根路由文件是否存在

Svelte Kit的路由规则要求:根路径/必须对应src/routes/+page.svelte文件(核心页面组件)。

  • 确认src/routes目录下是否有+page.svelte,如果缺失,创建该文件并添加基础内容:
<h1>根页面内容</h1>
  • 如果文件存在,检查是否在+page.js/+page.server.js的load函数中依赖了仅本地dev环境可用的资源(比如未部署的本地API),预渲染时无法访问这些资源会导致404。

2. 调整预渲染配置

打开项目根目录的svelte.config.js,检查prerender相关配置:

  • 临时关闭预渲染验证问题根源:将prerender.enabled设为false,重新运行npm run build。如果构建成功,说明问题出在预渲染环节。
  • 明确指定预渲染入口:如果需要保留预渲染,添加entries配置强制包含根路径:
export default {
  kit: {
    prerender: {
      entries: ['/'] // 明确指定预渲染根路径
    }
  }
};

3. 检查环境变量与API依赖

本地dev和生产build的环境变量可能不一致,导致预渲染时API请求失败:

  • 在+page.js的load函数中添加预渲染兼容逻辑,避免调用未部署的API:
export async function load({ fetch }) {
  // 预渲染时返回静态数据
  if (import.meta.env.SSR) {
    return { data: { content: '预渲染静态内容' } };
  }
  // 客户端运行时调用真实API
  const res = await fetch('/api/your-data');
  const data = await res.json();
  return { data };
}

4. 配置部署基础路径

如果部署到子路径(如GitHub Pages的仓库子路径),需设置base路径:

export default {
  kit: {
    paths: {
      base: '/your-repository-name/' // 替换为实际部署的子路径
    }
  }
};

内容的提问来源于stack exchange,提问作者Stan van der Bend

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:00:47