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 <cursoragent@cursor.com>
This commit is contained in:
@@ -26,15 +26,10 @@ export function publicApiBaseFromEnv(): string {
|
|||||||
return fromEnv || 'https://adm.montzar.ir';
|
return fromEnv || 'https://adm.montzar.ir';
|
||||||
}
|
}
|
||||||
|
|
||||||
const LEGACY_UPLOAD_HOSTS = new Set([
|
/**
|
||||||
'nerkh.gold',
|
* فقط مسیر نسبی /uploads/ را به PUBLIC_API_URL میچسباند.
|
||||||
'www.nerkh.gold',
|
* URL مطلق (مثل nerkh.gold) دست نخورده میماند — فایل هنوز همانجاست.
|
||||||
'tablo.talasevin.ir',
|
*/
|
||||||
'ah.aygingold.ir',
|
|
||||||
'abshode-service.montgit.ir',
|
|
||||||
]);
|
|
||||||
|
|
||||||
/** nerkh.gold/uploads/... → PUBLIC_API_URL/uploads/... (فایل روی سوپرادمین است) */
|
|
||||||
export function rewriteLegacyUploadUrl(
|
export function rewriteLegacyUploadUrl(
|
||||||
raw: unknown,
|
raw: unknown,
|
||||||
publicBase = publicApiBaseFromEnv(),
|
publicBase = publicApiBaseFromEnv(),
|
||||||
@@ -42,21 +37,8 @@ export function rewriteLegacyUploadUrl(
|
|||||||
const value = String(raw || '').trim();
|
const value = String(raw || '').trim();
|
||||||
if (!value) return '';
|
if (!value) return '';
|
||||||
const base = String(publicBase || '').replace(/\/$/, '');
|
const base = String(publicBase || '').replace(/\/$/, '');
|
||||||
if (!base) return value;
|
if (value.startsWith('/uploads/') && base) {
|
||||||
|
|
||||||
if (value.startsWith('/uploads/')) {
|
|
||||||
return `${base}${value}`;
|
return `${base}${value}`;
|
||||||
}
|
}
|
||||||
|
return 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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user