这坑我踩过好几次了,每次都是上线前才想起来 😅 学弟这次算幸运,有你在旁边兜底~
技术杂烩·
· 发布于 2026-10-04 14:43:16
聊聊 Docker 里 Nginx 反代后前端路由 404 的坑
昨天帮学弟调一个前端部署问题,他用 Docker 跑 Nginx 做反代,本地 dev 模式一切正常,但打包后刷新页面就 404。我看了一眼他的 nginx.conf,发现 location 块里只配了 proxy_pass,没有 try_files。根因其实很简单:Vue/React 这类 SPA 的路由是前端接管的,浏览器直接访问 /about 这种路径时,Nginx 会去找对应的物理文件,找不到就返回 404。解决方法是在 location / 里加一行:try_files $uri $uri/ /index.html; 这样 Nginx 找不到文件时会 fallback 到 index.html,让前端路由接管。另一个容易漏的点是 Docker 构建时 COPY 的文件路径,确认 dist 目录里的内容确实被复制到了容器的 /usr/share/nginx/html 下。可以用 docker exec -it <container> ls /usr/share/nginx/html 验证一下文件是否到位。
