cockpit-environment.md 3.2 KB

驾驶舱开发/生产环境配置

配置分工

文件 用途
通用环境 旧插件开关维持 false,应用入口已彻底移除插件扫描
开发环境 real 数据源、开发 API/WS 与公开图片地址
生产环境 real 数据源与同源代理路径,不绑定生产服务器 IP
本机挂载模板 复制为本机覆盖文件后配置 GIS 与模型的实际目录,不进入 Git
部署地图模板 生产构建的地图参数来源;不含密钥或本机磁盘路径

服务地址及唯一入口约定见 项目规则。旧预览模式配置已隔离,不再使用 pre.dev / pre.build / FES_ENV=predev。

开发与生产不再互相污染

开发时已有 本机运行时 JSON 仍然优先,当前场景和业务改动不变。干净检出没有该文件时,配置插件 使用部署地图模板加开发环境连接值返回配置。地图数据仍需要单独提供。

生产时关闭整个 public 目录的自动复制。配置插件从部署地图模板生成 cockpit/config.json,再用本次生产环境覆盖 dataSource / api.baseUrl / ws.url / images.baseUrl。不读取或复制本机 JSON,不会把现场临时模型参数或开发接口悄悄带入生产。需要变更生产场景时更新部署地图模板,或者在部署后修改服务器上的运行时配置。

两个环境均使用 VITE_COCKPIT_CONFIG_URL=auto,新产物无需再向 HTML 手动注入开关。已发布旧产物不会因修改源码环境文件自动改变。

生产代理契约

公开路径 需要部署的内容
/api/cockpit/v1 驾驶舱只读 API
/ws/deviceStatus WebSocket,代理必须传递 Upgrade/Connection
/minio/pipe/ 公开图片和附件;只填公开 endpoint,不提供 MinIO 私钥
/gis/dem-lod/ 地形目录,含 layer.json 和 terrain 瓦片
/gis/pic-ring0/ 至 /gis/pic-ring3/ 分层影像,必须保留 TMS 的 reverseY 语义
/gis/cad-bim/ 城市模型实际引用闭包,包含跨版本模型、JSON 和贴图

这些路径只是配置契约,不表示 Nginx 或资产已经部署。HTTP 页面自动使用 ws,HTTPS 页面自动使用 wss。内网边界、HTTPS、跨域及缓存由部署方配置。

环境覆盖与安全

应用配置优先级仍为:内置默认 → VITE 环境兜底 → 运行时 JSON;宿主明确注入配置对象时直接使用该对象。

FES 会先把通用和本机环境变量写入 process.env,Vite 再加载 mode 环境。因此不要在通用或本机覆盖文件中写开发 API/WS/图片基址,否则可能覆盖生产值。开发差异写入 .env.development.local,生产差异写入 .env.production.local(均不入库)。

VITE_ 值对浏览器公开。禁止存储数据库密码、MinIO accessKey/secret、短信密钥或带凭据/签名的图片基址。VITE_APP_ENV 只是标识,不是构建模式开关。

环境修改要到下一次获授权启动或构建时才生效;本次没有运行 build/dev/debug、浏览器验收,也没有提交推送。