You need to enable JavaScript to run this app. NextJS的pages/api/contactUs.js本地正常Vercel生产报404如何解决
优惠活动
大模型
产品
解决方案
定价
更多

NextJS的pages/api/contactUs.js本地正常Vercel生产报404如何解决

Next.js Pages Router API 部署Vercel返回404排查方案

可按以下优先级逐一排查问题:

  • 检查文件名与访问路径的大小写匹配
    Vercel部署基于Linux环境,对文件名大小写完全敏感,而本地Windows/macOS环境默认大小写不敏感。确认你访问的接口路径与实际文件名完全一致,例如pages/api/contactUs.js对应的访问路径为/api/contactUs,如果访问时写成/api/contactus全小写格式,就会直接返回404。
  • 检查pages目录层级
    确认pages文件夹放在项目的正确位置:如果项目未使用src目录结构,pages需直接放在项目根目录;如果项目使用src目录结构,pages需放在src目录下,对应API文件路径为src/pages/api/contactUs.js。
  • 检查Vercel项目配置
    进入Vercel对应项目的Settings->General页面,确认两项配置:
    • Framework Preset已选择Next.js,不要选成其他框架或者自定义配置
    • Root Directory配置与实际项目结构匹配,如果你的Next.js项目没有放在代码仓库根目录,需要手动指定对应的子目录作为项目根目录
  • 检查过滤与路由规则
    • 确认.gitignore、.vercelignore文件中没有包含pages或者该API文件的匹配规则,避免文件没有上传到部署环境
    • 检查next.config.js中的重写、重定向规则,确认没有拦截/api/contactUs的访问请求
    • 如果你使用的是Next.js 13+版本,确认没有同时启用App Router的app/api目录与Pages Router的pages/api目录产生路径冲突,也没有手动关闭Pages Router支持
  • 最简代码验证
    可以先将API文件替换为无逻辑的测试代码,排除代码本身的语法问题导致路由识别失败:
export default function handler(req, res) {
  res.status(200).json({ test: 'success', path: req.url })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:45:03