url.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * URL处理工具函数
  3. */
  4. /**
  5. * 获取完整的图片URL
  6. * @param url 图片路径或完整URL
  7. * @returns 完整的图片URL
  8. */
  9. export function getImageUrl(url: string): string {
  10. // 图片是相对路径不需要拼
  11. return url
  12. // if (!url) return ''
  13. // // 如果已经包含http或https协议,直接返回
  14. // if (url.startsWith('http://') || url.startsWith('https://')) {
  15. // return url
  16. // }
  17. // // 获取环境变量中的图片基础URL
  18. // const baseUrl = import.meta.env.VITE_IMAGE_BASE_URL || ''
  19. // // 确保baseUrl不以/结尾,url以/开头
  20. // const cleanBaseUrl = baseUrl.replace(/\/$/, '')
  21. // const cleanUrl = url.startsWith('/') ? url : `/${url}`
  22. // return `${cleanBaseUrl}${cleanUrl}`
  23. }
  24. /**
  25. * 获取完整的资源URL(通用版本)
  26. * @param url 资源路径或完整URL
  27. * @param baseUrlKey 环境变量中的基础URL键名,默认为VITE_IMAGE_BASE_URL
  28. * @returns 完整的资源URL
  29. */
  30. export function getResourceUrl(url: string, baseUrlKey: string = 'VITE_IMAGE_BASE_URL'): string {
  31. if (!url) return ''
  32. // 如果已经包含http或https协议,直接返回
  33. if (url.startsWith('http://') || url.startsWith('https://')) {
  34. return url
  35. }
  36. // 获取环境变量中的基础URL
  37. const baseUrl = (import.meta.env as any)[baseUrlKey] || ''
  38. // 确保baseUrl不以/结尾,url以/开头
  39. const cleanBaseUrl = baseUrl.replace(/\/$/, '')
  40. const cleanUrl = url.startsWith('/') ? url : `/${url}`
  41. return `${cleanBaseUrl}${cleanUrl}`
  42. }