// =============================== // CONFIG DINAMICA DAL SERVER // =============================== window.BASE_URL = null; window.PHOTOS_URL = null; window.MEDIA_BASE_ORIGIN = null; window.configReady = false; // Carica /config dal backend (async () => { try { const res = await fetch('/config'); const cfg = await res.json(); window.BASE_URL = cfg.baseUrl; window.PHOTOS_URL = `${window.BASE_URL}/photos`; window.MEDIA_BASE_ORIGIN = new URL(window.PHOTOS_URL).origin; console.log("[config] BASE_URL:", window.BASE_URL); console.log("[config] PHOTOS_URL:", window.PHOTOS_URL); console.log("[config] MEDIA_BASE_ORIGIN:", window.MEDIA_BASE_ORIGIN); window.configReady = true; } catch (err) { console.error("[config] Errore nel caricamento della config:", err); } })(); // =============================== // Utility: normalizza URL dei media // =============================== function toAbsoluteUrl(pathOrUrl) { if (!pathOrUrl) return ''; if (/^https?:\/\//i.test(pathOrUrl)) return pathOrUrl; const normalized = pathOrUrl.startsWith('/') ? pathOrUrl : `/${pathOrUrl}`; return `${window.MEDIA_BASE_ORIGIN}${normalized}`; } window.toAbsoluteUrl = toAbsoluteUrl;