urlHelper.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import config from './config';
  2. /**
  3. * 处理资源URL,在离线模式下转换为本地路径
  4. * @param {string} url - 原始URL
  5. * @returns {string} - 处理后的URL
  6. */
  7. export function getResourceUrl(url) {
  8. if (!url) return url;
  9. // 如果是离线模式且URL是远程URL
  10. if (config.isOfflineMode && (url.startsWith('http://') || url.startsWith('https://'))) {
  11. // 提取URL路径部分
  12. let path = '';
  13. try {
  14. const urlObj = new URL(url);
  15. // 从路径中提取需要的部分,例如 /panorama/showviewer/lib/krpano/plugins/webvr.xml
  16. if (urlObj.pathname.includes('/panorama/')) {
  17. path = urlObj.pathname.substring(urlObj.pathname.indexOf('/panorama/'));
  18. } else if (urlObj.pathname.includes('/showviewer/')) {
  19. path = config.offlineBasePath + urlObj.pathname.substring(urlObj.pathname.indexOf('/showviewer/'));
  20. } else {
  21. // 其他情况,保留原始URL
  22. return url;
  23. }
  24. // 返回本地路径
  25. return path;
  26. } catch (e) {
  27. console.error('URL解析错误:', e);
  28. return url;
  29. }
  30. }
  31. return url;
  32. }