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

NextJS/Vercel生产环境无法读取public目录PDF文件求助

解决Next.js部署到Vercel时无法读取public目录PDF文件的问题

问题原因

Vercel生产环境的工作目录与本地不一致,直接使用相对路径public/assets/Bonus_1.pdf会导致文件定位失败,而本地环境的工作目录就是项目根目录,因此能正常读取文件。

解决方案

1. 使用绝对路径拼接文件路径

修改获取文件路径的代码,通过process.cwd()获取项目根目录,再拼接public目录的路径,确保在任何环境下都能定位到正确的文件:

const pathToAttachment1 = path.join(process.cwd(), "public", "assets", "Bonus_1.pdf");
const attachment1 = fs.readFileSync(pathToAttachment1).toString("base64");

2. 确认Vercel部署时文件已被正确包含

  • 检查项目的.gitignore文件,确保没有忽略public/assets/Bonus_1.pdf或整个public/assets目录;
  • 查看Vercel部署日志,确认该PDF文件在构建过程中被正常上传至服务器。

3. 可选:验证绝对路径正确性

可以在代码中打印最终的绝对路径,方便排查路径问题:

const fullPath = path.join(process.cwd(), "public", "assets", "Bonus_1.pdf");
console.log("Full file path:", fullPath);

内容的提问来源于stack exchange,提问作者Ives E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:52:21