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

Next.js 14部署Vercel后Cron Jobs返回404错误的解决求助

解决Vercel Cron Jobs触发404的问题

核心原因

Vercel默认会用「最新部署」的临时预览域名调用Cron Jobs,而你的API路由仅在生产环境部署(主分支)中正常生效,导致临时域名访问时返回404。

解决方案

1. 绑定Cron Jobs到生产环境部署

进入Vercel控制台的项目「Settings」>「Cron Jobs」,编辑每个定时任务:

  • 在「Deployment」下拉菜单中,选择你的生产环境部署(通常是main/master分支的部署,而非默认的「Latest Deployment」)
  • 保存后重新触发任务,即可使用生产域名调用API路由

2. 验证API路由文件路径匹配

确保你的API路由文件路径与vercel.json中的path完全对应:

  • 若使用Next.js 14 App Router,文件需放在app/api/cron/[task-name]/route.ts(例如app/api/cron/alert-before-experience/route.ts)
  • 若使用Pages Router,文件需放在pages/api/cron/[task-name].ts(例如pages/api/cron/alert-before-experience.ts)

3. 强制指定Cron调用域名(可选)

如果上述方法无效,可在vercel.json的cron配置中添加domain字段,明确指定生产域名:

{
  "crons": [{
    "path": "/api/cron/alert-before-experience",
    "schedule": "10,30,50 * * * *",
    "domain": "xxx-rho.vercel.app"
  }, {
    "path": "/api/cron/alert-no-disponibility",
    "schedule": "* 2 * * *",
    "domain": "xxx-rho.vercel.app"
  }, {
    "path": "/api/cron/transfer-from-platform-to-connected-accounts",
    "schedule": "0 * * * *",
    "domain": "xxx-rho.vercel.app"
  }]
}

注意:domain必须是已绑定到项目的生产域名(自定义域名或Vercel分配的主域名),不能用临时预览域名。

4. 检查生产环境路由可用性

手动访问生产域名的API路径(例如https://xxx-rho.vercel.app/api/cron/alert-before-experience),确认返回正常响应,排除路由本身的错误或权限限制(比如IP白名单需包含Vercel Cron的调用IP)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:57:26