build / build (push) Failing after 13s
- Header.vue:铃铛未读角标 + WS 客户端(25s 心跳/断线 5s 重连换新票/newMessage 红点+1+Notice 弹提示) - BaseApi.ts:getMsgCenterWsTicket(POST /api/msgCenter/wsTicket 代签一次性票据) - index.html:修复 lodash 引用路径(./libs/lodash.min.js,dev 404 致白屏) - CI:build.yml 照 notice/front 模板(构建→zip→Nexus front-hosted→webhook 建档); userhome deployMode=auto,webhook 后自动发布;凭据 prod.env+projman DB 直读(不走仓库 Secrets)
41 lines
2.2 KiB
HTML
41 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<link rel="icon" type="image/svg+xml" href="../../favicon.ico" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<!-- 运行时配置引导:在任何应用模块执行前同步拉取 /<应用>/<前端目标>/api/env-config
|
||
(projman 配置管理在线维护),替代 config/index.js 与生产构建环境变量。
|
||
必须同步:host.config.ts 在模块求值期就读 window.__APP_CONFIG__;失败/本地开发
|
||
(路径不足两段)则不设置:本地走 .env.dev(import.meta.env.VITE_*),线上走同域推导兜底。
|
||
注意:同步 XHR 不支持 timeout 属性(赋值会抛 InvalidAccessError),依赖内网快速失败 -->
|
||
<script>
|
||
(function () {
|
||
try {
|
||
var seg = location.pathname.split("/").filter(Boolean);
|
||
if (seg.length < 2) return; // 本地开发(根路径):无应用上下文,走 .env.dev
|
||
var xhr = new XMLHttpRequest();
|
||
xhr.open("GET", "/" + seg[0] + "/api/env-config?target=" + encodeURIComponent(seg[1]), false);
|
||
xhr.send(null);
|
||
if (xhr.status === 200) {
|
||
var conf = JSON.parse(xhr.responseText);
|
||
if (conf && typeof conf === "object") window.__APP_CONFIG__ = conf;
|
||
}
|
||
} catch (e) {
|
||
/* 拉取失败保持未设置,走同域推导兜底 */
|
||
}
|
||
})();
|
||
</script>
|
||
<title><%- title %></title>
|
||
<link rel="stylesheet" href="./libs/ztree/zTreeStyle.css" />
|
||
<script src="./libs/jquery.min.js"></script>
|
||
<!-- lodash 全局脚本:文件位于 public/libs/(dev 由 vite 静态目录伺服,build 随 dist/libs 发布) -->
|
||
<script src="./libs/lodash.min.js"></script>
|
||
<script src="./libs/ztree/jquery.ztree.all.min.js"></script>
|
||
</head>
|
||
<body>
|
||
<div id="app"></div>
|
||
<script type="module" src="/src/main.ts"></script>
|
||
</body>
|
||
</html>
|