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';
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user