41 lines
1.9 KiB
HTML
41 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<link rel="icon" type="image/x-icon" href="../../favicon.ico" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<!-- 运行时配置引导:在任何应用模块执行前同步拉取 /<contextPath>/api/env-config
|
||
(后端免登录端点,projman 配置管理在线维护),替代生产构建环境变量。
|
||
必须同步:host.config.ts 在模块求值期就读 window.__APP_CONFIG__;失败/本地开发
|
||
(根路径,段数不足 2)则不设置:本地走 .env.dev(VITE_*),线上走同域推导兜底。
|
||
target = URL 第 2 段目录名:本应用产物部署于 /{contextPath}/hall/,故为 hall,
|
||
对应 projman 前端目标名 hall(文件 /app/config/env-config-hall.json)。
|
||
注意:同步 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>
|
||
<%- injectScript %>
|
||
</head>
|
||
|
||
<body>
|
||
<div id="app"></div>
|
||
<script type="module" src="/src/main.ts"></script>
|
||
</body>
|
||
|
||
</html> |