/** * 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}` }