/** * 接口根地址(与 ruoyi-ui 的 VUE_APP_BASE_API 对齐) * * - 开发:.env.development → /dev-api(H5 代理)或 VITE_APP_API_HOST 直连 * - 生产:.env.production → /prod-api(与 ruoyi-ui/.env.production 一致,由 Nginx 转发) * * 打包 H5:uni build -p h5 */ /** 开发兜底 / 小程序未配域名时的默认值(生产 H5 不应依赖此项) */ const apiHost = String(import.meta.env.VITE_APP_API_HOST || 'http://192.168.1.6:8010').replace(/\/$/, '') /** .env 显式配置的后端域名(小程序/App 生产环境必填 https) */ const hostFromEnv = String(import.meta.env.VITE_APP_API_HOST || '').trim().replace(/\/$/, '') /** 与 ruoyi-ui 的 VUE_APP_BASE_API 同源配置(dev/prod 由 .env 注入) */ const envBaseApi = String(import.meta.env.VITE_APP_BASE_API || '').trim() /** * H5 开发是否走 /dev-api 代理(需 vite.config.js server.proxy) * true:请求发到当前页同源 /dev-api,由 Vite 转发到 VITE_APP_API_HOST(推荐,避免跨域) * false:直连 VITE_APP_API_HOST(仅调试代理问题时使用) */ export const H5_USE_PROXY = true function resolveBaseApi() { if (import.meta.env.PROD) { return envBaseApi || '/prodapi' } const devBase = envBaseApi || '/dev-api' // #ifdef H5 return H5_USE_PROXY ? devBase : apiHost // #endif // #ifndef H5 return apiHost // #endif } export const BASE_API = resolveBaseApi() /** * 后端完整地址(开发 / 小程序打包用 .env 的 VITE_APP_API_HOST) * H5 生产图片在运行时由 getFileBase() 自动取 window.location.origin */ export const API_HOST = hostFromEnv || apiHost /** 图片根地址(构建时);H5 生产以运行时 getFileBase() 为准 */ export const FILE_BASE = API_HOST /** * 拼接图片、上传文件等静态资源地址(profile/upload 等) * @param {string} path */ export function joinFileUrl(path) { if (!path) { return FILE_BASE } if (/^https?:\/\//i.test(path)) { return path } const p = path.startsWith('/') ? path : '/' + path const base = String(FILE_BASE).replace(/\/$/, '') return base + p } /** * 拼接接口或静态资源地址(/login、/profile/...) * @param {string} path */ export function joinApiUrl(path) { if (!path) { return BASE_API } if (/^https?:\/\//i.test(path)) { return path } const p = path.startsWith('/') ? path : '/' + path const base = String(BASE_API).replace(/\/$/, '') return base + p } export const TOKEN_KEY = 'Admin-Token' export const REMEMBER_USERNAME_KEY = 'login_username'