find . \( -name '*.PNG' -o -name '*.JPG' \) -print
# 统一重命名后再改引用
git mv Logo.PNG logo.png

Windows 上开发一切正常,部署到 Linux 后 Logo 和两个字体文件 404,请求路径是 Logo.PNG,磁盘上是 logo.png。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,Windows 文件系统不区分大小写,写错也能读到;Linux 区分,请求和文件名差一个字母就是 404。构建工具不会替你纠正引用。

「Linux 大小写敏感」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

处理上按这个顺序:按 404 的完整路径逐个核对磁盘上的实际文件名;统一改成小写并用短横线连接 避免以后再踩;在 CI 里加一步检查 引用和文件名不一致就报错。

改完只确认一件事:Linux 上所有静态资源返回 200,CI 检查不再报大小写不一致。

作者 9823189