From a7747366f90af6968c63f0def260a2fac878ca2e Mon Sep 17 00:00:00 2001 From: adonis Date: Mon, 7 Sep 2026 20:10:07 +0330 Subject: [PATCH] fix(uploads): keep absolute nerkh logo URLs intact Only resolve relative /uploads/ paths; rewriting legacy hosts to SuperAdmin broke logos that still live on nerkh. Co-authored-by: Cursor --- src/uploads/uploads.util.ts | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/src/uploads/uploads.util.ts b/src/uploads/uploads.util.ts index 5409907..ed7eea5 100644 --- a/src/uploads/uploads.util.ts +++ b/src/uploads/uploads.util.ts @@ -26,15 +26,10 @@ export function publicApiBaseFromEnv(): string { return fromEnv || 'https://adm.montzar.ir'; } -const LEGACY_UPLOAD_HOSTS = new Set([ - 'nerkh.gold', - 'www.nerkh.gold', - 'tablo.talasevin.ir', - 'ah.aygingold.ir', - 'abshode-service.montgit.ir', -]); - -/** nerkh.gold/uploads/... → PUBLIC_API_URL/uploads/... (فایل روی سوپرادمین است) */ +/** + * فقط مسیر نسبی /uploads/ را به PUBLIC_API_URL می‌چسباند. + * URL مطلق (مثل nerkh.gold) دست نخورده می‌ماند — فایل هنوز همان‌جاست. + */ export function rewriteLegacyUploadUrl( raw: unknown, publicBase = publicApiBaseFromEnv(), @@ -42,21 +37,8 @@ export function rewriteLegacyUploadUrl( const value = String(raw || '').trim(); if (!value) return ''; const base = String(publicBase || '').replace(/\/$/, ''); - if (!base) return value; - - if (value.startsWith('/uploads/')) { + if (value.startsWith('/uploads/') && base) { return `${base}${value}`; } - - if (!/^https?:\/\//i.test(value)) return value; - - try { - const parsed = new URL(value); - const host = parsed.hostname.toLowerCase(); - if (!LEGACY_UPLOAD_HOSTS.has(host)) return value; - if (!/\/uploads\//i.test(parsed.pathname)) return value; - return `${base}${parsed.pathname}`; - } catch { - return value; - } + return value; }