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

Svelte Kit部署后/api/sendMail接口出现404错误求助

问题原因与解决方案

核心原因

@sveltejs/adapter-static是专门用于生成纯静态站点的适配器,它不会保留或运行Svelte Kit的服务器端API路由。本地开发时,Svelte Kit的开发服务器会处理这些API请求,但构建后,静态主机只会托管client和prerendered目录里的静态资源,server目录的代码无法在静态环境中执行,导致/api/sendMail接口返回404。

具体解决办法

  • 改用支持服务器端运行的适配器:如果你的主机支持Node.js环境,放弃adapter-static,换成@sveltejs/adapter-node。构建后会生成可执行的Node服务文件,在主机上启动该服务后,原API路由就能正常工作。
  • 迁移API到无服务器函数:将sendMail的逻辑迁移到主机支持的无服务器函数服务(比如Vercel Functions、Netlify Functions等)。
    1. 把原src/routes/api/sendMail/+server.js中的邮件发送逻辑提取出来,改成对应平台的函数格式。
    2. 把函数文件放到平台要求的目录(比如Netlify是netlify/functions/)。
    3. 调整前端代码中的请求路径,指向新的函数地址(比如/.netlify/functions/sendMail)。
  • 检查静态部署配置:确认svelte.config.js中adapter-static的prerender配置没有强制预渲染API路由,这会导致API路由被错误处理,但本质还是静态适配器不支持服务器端端点的问题。

内容的提问来源于stack exchange,提问作者Emirhan Gümüş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:26:02