123456789101112131415161718192021222324252627282930313233343536 |
- 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;
- }
|