feat(theme): A 类免插件接入 YschTheme 中央静态通道(index.html loader + 删本地 layout.css)
- index.html:env-config 引导后插主题通道 loader(优先级 staticHost > baseHost > %VITE_THEME_HOST% 仅 dev > 同源 /static,document.write parser-blocking,产物占位符零烧入) - main.ts:删本地 layout.css 引入(通道旧版全量拷贝 14.8KB),注释改指通道下发链 - src/assets/styles/layout.css:删除(staged) - vite.config.ts:/static dev 代理(YH_THEME_PROXY_TARGET 可覆盖)+ /api /mobiapi 代理整理 - .env.dev:三种 dev 模式说明 + VITE_THEME_HOST 连法注释 - App.vue:注释纠正(主题样式改由中央通道下发) - alova-iview/alova-vant:修 mock 失效(baseUrl 未认 isMock) 依据:YschTheme 方案 §11 A 类契约 +《主题通道当前困境与待决问题-20260929》§3 九文件清单
This commit is contained in:
+20
@@ -27,6 +27,26 @@
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<!-- 主题通道引导(A 类免插件接入,见 YschTheme《管理端主题远程化与公共静态通道方案》§11):
|
||||
唯一接入点。不装 npm 依赖、不改构建配置;FOUC 门、manifest 预取、主题 <link> 追加与
|
||||
排序(晚于 viewuiplus.css)全由通道 yh-theme-init.js 承担,主题升级走 /static 通道,
|
||||
本应用无需重新构建。
|
||||
origin 零写死,优先级四档:__APP_CONFIG__.staticHost(专用通道覆盖)
|
||||
> __APP_CONFIG__.baseHost(env-config 在线维护,换域名改配置即生效)
|
||||
> %VITE_THEME_HOST%(仅 dev 注入的跨源直连,需通道已开 CORS)
|
||||
> 同源相对 "/static/…"(生产常态:本应用部署在 base 域 /userbase/front/,与通道同源;
|
||||
本地 dev 由 vite.config 的 /static 代理兜到通道)。
|
||||
document.write 是有意为之:保证 parser-blocking,让档位类与 FOUC 门先于首帧;
|
||||
build 不读 .env,占位符留字面量 → 判首字符 % 置空 → 产物零环境值烧入。 -->
|
||||
<script>
|
||||
(function () {
|
||||
var c = window.__APP_CONFIG__ || {};
|
||||
var themeHost = "%VITE_THEME_HOST%";
|
||||
if (themeHost.charAt(0) === "%") themeHost = "";
|
||||
var host = String(c.staticHost || c.baseHost || themeHost).replace(/\/+$/, "");
|
||||
document.write('<script src="' + host + '/static/js/yh-theme-init.js"><\/script>');
|
||||
})();
|
||||
</script>
|
||||
<title><%- title %></title>
|
||||
<link rel="stylesheet" href="./libs/ztree/zTreeStyle.css" />
|
||||
<script src="./libs/jquery.min.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user