fix(W3): 预览资产代理前缀拼 request.getContextPath(/yschcms 下 CSS 404 裸 HTML),T-W3-01..04 全绿+全量 264/264

This commit is contained in:
chenxing
2026-09-08 10:51:52 +08:00
parent 32448f097e
commit 5da6f7ee5d
3 changed files with 48 additions and 2 deletions
@@ -57,8 +57,12 @@ public class PortalUrlHelper {
*/
public static PortalUrlHelper forPreview(HttpServletRequest request, String siteCode, String theme) {
PortalUrlHelper base = fromRequest(request, siteCode, theme);
// 显式走 5 参构造:第 4 参是 base-origin,代理前缀必须落第 5 参(避免误绑 4 参重载)
return new PortalUrlHelper(base.baseUrl, siteCode, theme, null, "/api/theme/" + theme + "/asset/");
// 显式走 5 参构造:第 4 参是 base-origin,代理前缀必须落第 5 参(避免误绑 4 参重载)。
// W3(方案 §7.4):前缀拼 request.getContextPath()——base/prod 上下文 /yschcms 下
// 不拼会导致 iframe 内 CSS/JS 链接打到网关根 404(预览裸 HTML);
// 空上下文(dev)退化为根相对 /api/theme/…,dev 形态不回归(T-W3-02)。
return new PortalUrlHelper(base.baseUrl, siteCode, theme, null,
request.getContextPath() + "/api/theme/" + theme + "/asset/");
}
/**