- index.html 插 A 类 loader:唯一接入点,FOUC 门/manifest 预取/主题 link 追加与排序 全由通道 yh-theme-init.js 承担,主题升级走 /static 通道,本应用无需重新构建 - vite.config 加 /static dev 代理(YH_THEME_PROXY_TARGET 可覆盖,默认线上通道) - host.config 回写 __APP_CONFIG__.serviceHost(仅同源):init 的 appearance 请求有硬性 同源限制,跨源会被直接跳过;本地 dev 保持空串走同源 /api 代理 - 顶栏头像接平台键 yh-avatar,监听 yh-appearance-updated,userInfo 兜底 - view-ui-plus 声明锁 1.3.24(对齐通道皮肤生成版本)
This commit is contained in:
@@ -80,4 +80,30 @@ if (ishttps) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 回写 __APP_CONFIG__.serviceHost(仅同源场景)——云海子 A 类接入 §3 外观三键。
|
||||
* 主题通道 yh-theme-init.js 的 appearance 请求有硬性同源限制:
|
||||
* if (!url || !appearanceSameOrigin(url)) return; → 跨源会被直接跳过、连请求都不发。
|
||||
* 本地 dev:serviceHost 是 VITE_SERVICE_HOST 的绝对地址(跨源),此时不能回写,
|
||||
* 保持空串让 init 走同源 "/api/appearance",由 vite 代理转发到后端。
|
||||
* 生产:serviceHost = 同域 ctx(https://base.../<contextPath>),同源,回写后 init 请求正确前缀。
|
||||
* 已有 env-config 下发值时不动(以平台配置为准)。
|
||||
*/
|
||||
try {
|
||||
const w = window as any;
|
||||
w.__APP_CONFIG__ = w.__APP_CONFIG__ || {};
|
||||
if (!w.__APP_CONFIG__.serviceHost) {
|
||||
const candidate = conf.serviceHost || "";
|
||||
let sameOrigin = !candidate;
|
||||
try {
|
||||
sameOrigin = new URL(candidate, window.location.href).origin === window.location.origin;
|
||||
} catch {
|
||||
sameOrigin = false;
|
||||
}
|
||||
if (sameOrigin) w.__APP_CONFIG__.serviceHost = candidate;
|
||||
}
|
||||
} catch {
|
||||
/* 极端环境无 window:忽略,保持同源兜底 */
|
||||
}
|
||||
|
||||
export default conf;
|
||||
|
||||
Reference in New Issue
Block a user