这个问题困扰了我大半年,每次部署都像抽奖。
后来发现几个常见原因:
1. 大小写问题
Windows 不区分大小写,Linux 区分。本地引用的 User.js,实际文件是 user.js,本地能跑,服务器 404。
2. 环境变量没配
本地有 .env 文件,服务器上没有。数据库密码、API 密钥全是 undefined,连都连不上。
3. 路径问题
本地用绝对路径 C:/project/...,服务器是 Linux,没有 C 盘。或者反斜杠正斜杠混用,解析出错。
4. 依赖版本
本地 node 版本 18,服务器 14。某个新语法不支持,直接报错。
现在部署前 checklist:大小写检查、环境变量核对、路径统一、Docker 打包。虽然麻烦,但比凌晨两点修线上 bug 强。
—— 2026.6.13