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

Next.js API部署至Vercel后无响应,提示文件不存在错误

解决Next.js部署Vercel后API无法读取posts.json的问题

核心原因

Vercel部署后,Serverless函数的执行环境工作目录和本地开发时存在差异,直接使用相对路径./posts.json无法正确定位到目标文件。

解决方案

1. 用绝对路径定位文件

在API路由代码里,通过process.cwd()获取项目根目录的绝对路径,再拼接出posts.json的完整路径,示例代码如下:

import fs from 'fs';
import path from 'path';

export default function handler(req, res) {
  // 拼接posts.json的绝对路径
  const filePath = path.join(process.cwd(), 'posts.json');
  // 读取并解析文件内容
  const fileContent = fs.readFileSync(filePath, 'utf8');
  const posts = JSON.parse(fileContent);

  // 后续CRUD逻辑处理
  res.status(200).json(posts);
}

2. 确保文件被正常部署

  • 检查项目根目录的.gitignore文件,确认posts.json没有被加入忽略列表,否则Vercel部署时不会同步该文件到服务器。
  • 如果posts.json是构建时动态生成的,要确保构建流程能将文件生成到项目根目录(或你指定的绝对路径对应位置)。

3. 替代方案:改用数据库存储(可选)

Vercel的Serverless函数是无状态的,每次请求可能在不同实例上运行,直接修改本地JSON文件的内容无法持久化。如果需要稳定的CRUD数据持久化,建议替换为Vercel KV、Supabase等轻量数据库服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:20:32