feat: support zero-config LAN access for local development
Auto-rewrite loopback API URLs to current page host in browser Allow CORS for private LAN IPs when localhost origin is configured Remove display limit for related Pokémon in detail view
This commit is contained in:
@@ -1208,6 +1208,8 @@ API 暴露边界:
|
||||
|
||||
- Docker 部署时公开前端端口由 `frontend_gateway` 承载,正常流量代理到 `frontend` 服务。
|
||||
- 前端浏览器 API base URL 由 `NUXT_PUBLIC_API_BASE_URL` 提供。
|
||||
- 当前端浏览器 API base URL 配置为 `localhost`、`127.0.0.1` 或 `[::1]`,但用户通过局域网 IP 或其他非 loopback 主机访问前端时,浏览器端 API 请求会自动使用当前页面主机名并保留配置的协议和端口;该兼容行为只影响浏览器端请求,不改变 Nuxt 服务端 API base URL。
|
||||
- 后端 CORS origin 由 `FRONTEND_ORIGIN` 提供;当 `FRONTEND_ORIGIN` 包含本地 loopback 前端地址时,后端允许同协议、同端口的 loopback、私有网段 IP 和常见 Docker 开发主机名作为本地开发别名,并对通过校验的浏览器 origin 回显对应 `Access-Control-Allow-Origin`。
|
||||
- Nuxt 服务端 API base URL 由 `NUXT_SERVER_API_BASE_URL` 提供;在 Docker 内默认使用 `http://backend:3001`,本地非 Docker 运行可使用 `http://localhost:3001`。服务端公开数据读取使用该内部地址,浏览器请求继续使用 `NUXT_PUBLIC_API_BASE_URL`。
|
||||
- 前端 Docker 构建使用 Nuxt server output,`frontend` 服务通过 Node 运行 `.output/server/index.mjs`;Nuxt SSR server 监听容器内 `0.0.0.0:20015`,公开流量仍由 `frontend_gateway` 代理。
|
||||
- `frontend` 因 `docker compose up -d --build` 重建、启动中或临时不可达时,`frontend_gateway` 返回静态升级维护页并保持公开端口可访问;后端 `/health` 不可用时,前端网关也返回同一维护页,避免用户看到静态页面后遇到 API 不可用。
|
||||
|
||||
Reference in New Issue
Block a user