From 2d4c9e3f38964b97f103aeee5d150c9fdd9463fa Mon Sep 17 00:00:00 2001 From: nanxingw Date: Mon, 27 Apr 2026 17:00:24 +0800 Subject: [PATCH] fix(wiki): prefix gacha iframe src with Astro base path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Knowledge Atlas Draw button opens a modal that loads the picked card via an @@ -257,6 +257,11 @@ const cardEntries = [...byKind.concepts, ...byKind.entities].sort((a, b) => a.sl const gachaAgain = gacha.querySelector(".gacha__again")!; const gachaBackdrop = gacha.querySelector(".gacha__backdrop")!; const lang = gacha.dataset.lang ?? "zh"; + // Astro `base` (e.g. "/advanced-agentic-dev-patterns" on GitHub Pages, + // "" on local dev). Without this prefix the iframe would request + // `/card-fragment/...` against the domain root and Pages would serve + // its default 404 page inside the modal. + const base = gacha.dataset.base ?? ""; function syncFrameTheme() { if (!gachaFrame.contentDocument) return; @@ -273,7 +278,7 @@ const cardEntries = [...byKind.concepts, ...byKind.entities].sort((a, b) => a.sl const pick = candidates[Math.floor(Math.random() * candidates.length)]; gachaCard.dataset.kind = pick.kind; gachaGo.href = pick.href; - const nextSrc = `/card-fragment/${lang}/${pick.kind}/${pick.slug}`; + const nextSrc = `${base}/card-fragment/${lang}/${pick.kind}/${pick.slug}`; gachaFrame.src = nextSrc; gachaFrame.addEventListener("load", syncFrameTheme, { once: true }); gachaCard.classList.remove("is-flipping");