45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
// ===============================
|
|
// 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;
|