技术与工程已解决
本地能运行,为什么部署后提示环境变量缺失?
解决本地正常、部署失败的环境变量差异,区分构建时、运行时和客户端配置。
问题正文
项目在本地读取 .env 后可以运行,但部署到 Vercel 或服务器就提示变量缺失、数据库连接失败。
应该从哪些地方开始检查?
解决本地正常、部署失败的环境变量差异,区分构建时、运行时和客户端配置。
问题正文
项目在本地读取 .env 后可以运行,但部署到 Vercel 或服务器就提示变量缺失、数据库连接失败。
应该从哪些地方开始检查?
ANSWERS
回答内容
本地 .env 不会自动进入部署平台。部署时要为 Preview 与 Production 分别配置变量,确认变量是在构建时还是运行时读取,并在保存后重新部署。
对照 .env.example 列出必需变量。
在平台为不同环境分别配置,核对大小写。
重新部署并查看构建日志与运行日志。
上线后做核心页面和接口 smoke test。
if (!process.env.DATABASE_URL) {
throw new Error("DATABASE_URL is missing");
}前端可见的环境变量默认应视为公开,不要放数据库密码或服务端 Token。
修改平台变量通常不会改变已经完成的旧部署,需要创建新部署。
Vercel Docs:Environment variables:https://vercel.com/docs/environment-variables
Vercel Docs:Deployments:https://vercel.com/docs/deployments