import config from './config'; /** * 处理资源URL,在离线模式下转换为本地路径 * @param {string} url - 原始URL * @returns {string} - 处理后的URL */ export function getResourceUrl(url) { if (!url) return url; // 如果是离线模式且URL是远程URL if (config.isOfflineMode && (url.startsWith('http://') || url.startsWith('https://'))) { // 提取URL路径部分 let path = ''; try { const urlObj = new URL(url); // 从路径中提取需要的部分,例如 /panorama/showviewer/lib/krpano/plugins/webvr.xml if (urlObj.pathname.includes('/panorama/')) { path = urlObj.pathname.substring(urlObj.pathname.indexOf('/panorama/')); } else if (urlObj.pathname.includes('/showviewer/')) { path = config.offlineBasePath + urlObj.pathname.substring(urlObj.pathname.indexOf('/showviewer/')); } else { // 其他情况,保留原始URL return url; } // 返回本地路径 return path; } catch (e) { console.error('URL解析错误:', e); return url; } } return url; }