import { getApiBase } from "@/config/api"; function normalizeBase(url: string): string { return url.trim().replace(/\/+$/, ""); } function getStaticBase(): string { const fromEnv = typeof import.meta.env.VITE_STATIC_BASE_URL === "string" ? normalizeBase(import.meta.env.VITE_STATIC_BASE_URL) : ""; if (fromEnv) { return fromEnv; } const apiBase = normalizeBase(getApiBase()); return apiBase ? `${apiBase}/assets/map` : ""; } /** * 将原先 /static/xxx 映射到后端静态目录: * https://domain/assets/map/xxx */ export function staticAsset(input: string): string { const p = (input || "").trim(); if (!p) { return ""; } if (/^https?:\/\//i.test(p)) { return p; } const file = p .replace(/^\/+/, "") .replace(/^static\//, ""); const base = getStaticBase(); return base ? `${base}/${file}` : `/static/${file}`; }