Files
AIGC/frontend/src/utils/apiHelper.js
blandarebiter 90b5118e45 perf(backend+frontend): 列表API响应体积优化 3.1MB→145KB (↓95.4%)
- 后端: JPQL构造器投影排除LONGTEXT大字段(uploadedImages/videoReferenceImages)
- 后端: DTO层过滤非分镜图类型的base64内联resultUrl
- 前端: 列表缩略图从video改为img loading=lazy,消除172并发请求
- 前端: download函数增加resultUrl懒加载(详情接口兜底)
- 文档: 新增性能优化报告 docs/performance-optimization-report.md
2026-04-10 18:46:37 +08:00

42 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* API 基础路径工具函数
* 自动适配 ngrok 内网穿透和本地开发环境
*/
/**
* 获取 API 基础路径
* @returns {string} API 基础路径
*/
export function getApiBaseURL() {
// 检查是否在浏览器环境中
if (typeof window !== 'undefined') {
const hostname = window.location.hostname
// 如果当前域名包含 ngrok 或通过 Nginx 访问,使用相对路径
if (hostname.includes('ngrok') ||
hostname === 'localhost' ||
hostname === '127.0.0.1' ||
hostname.startsWith('172.22.') ||
window.location.port === '') { // 通过 Nginx 代理访问时没有端口号
// 通过 Nginx 访问,使用相对路径(自动适配当前域名)
return '/api'
}
}
// 默认开发环境,使用相对路径(通过 Vite 代理)
return '/api'
}
/**
* 构建完整的 API URL
* @param {string} path - API 路径(如 '/users' 或 'users'
* @returns {string} 完整的 API URL
*/
export function buildApiURL(path) {
const baseURL = getApiBaseURL()
// 确保路径以 / 开头
const cleanPath = path.startsWith('/') ? path : `/${path}`
return `${baseURL}${cleanPath}`
}