Commit Graph

2 Commits

Author SHA1 Message Date
xiaoxia efb9d6c57f fix: nginx SPA路由移除$uri/,避免/assets等路径被当成静态目录返回403
Deploy / Staging E2E Tests (push) Has been cancelled
Deploy / Build Production Runtime Images (push) Has been skipped
Deploy / Deploy Production (push) Has been skipped
Deploy / Production Browser E2E (push) Has been skipped
Deploy / Deploy Staging (push) Failing after 115h22m58s
CI/CD Pipeline / Frontend Lint (push) Failing after 115h23m32s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 115h23m32s
问题根因:
- try_files $uri $uri/ /index.html 中的 $uri/ 会匹配与构建产物目录同名的路由
- Vite 默认将静态资源放在 assets/ 目录下
- 访问 /assets 时,$uri/ 匹配到 assets/ 目录,Nginx 尝试目录访问返回 403
- 类似的路径冲突还有 /dashboard /history 等如果有同名目录也会出问题

修复方案:
- 移除 $uri/,改为 try_files $uri /index.html
- 真实存在的静态文件(如 /assets/index-abc.js)仍然能通过 $uri 正确返回
- 前端路由路径统一 fallback 到 index.html 由 SPA 路由处理

影响范围:nginx.conf / nginx-production.conf / nginx-staging.conf 三个文件
2026-07-04 17:30:49 +08:00
xiaoxia a5f1d9685d refactor(phase3): Docker 网络隔离 staging/production 环境
Deploy / Staging E2E Tests (push) Has been skipped
Deploy / Build Production Runtime Images (push) Has been skipped
Deploy / Deploy Production (push) Has been skipped
Deploy / Production Browser E2E (push) Has been skipped
Deploy / Deploy Staging (push) Failing after 141h44m9s
CI/CD Pipeline / Frontend Lint (push) Failing after 141h44m18s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 141h44m18s
- compose.yml: 网络名根据 ENV 变量区分 (xiaoxia-net-staging/xiaoxia-net-production)
- infra-production.yml: 使用 xiaoxia-net-production 网络
- infra.yml: 使用 xiaoxia-net-staging 网络
- 新增 nginx-staging.conf (proxy_pass -> xiaoxia-api-staging:8000)
- 新增 nginx-production.conf (proxy_pass -> xiaoxia-api-production:8000)
- nginx.conf 更新为 production 默认配置
- web-artifact.Dockerfile: 添加 ARG NGINX_CONF 支持构建时选择 nginx 配置
- deploy-staging.sh: 添加 ENV=staging、网络创建、nginx 配置选择
- deploy-production.sh: 添加 ENV=production、网络创建
- deploy.yml: CI 构建传入 NGINX_CONF 参数、远程部署脚本添加网络创建
- deploy.yml: 冒烟测试添加网络隔离验证
2026-07-03 15:09:54 +08:00