apiBase.ts
1.4 KB
/**
* 与 vite `server.proxy` 默认 target 一致;H5 开发无 VITE_US_API_BASE 时用于拼图片等静态资源全路径。
* 修改后端环境时请同步改 vite.config.ts 的 proxy.target。
*/
export const US_BACKEND_ORIGIN_FALLBACK = 'http://flus-test.3ffoodsafety.com'
/**
* 美国版后端 API 根地址(不含末尾 /)。
* - H5 开发:可在 .env.development 留空,配合 vite proxy 走同源 /api
* - App / 生产:在 .env 中设置 VITE_US_API_BASE,例如 http://192.168.1.10:19001
*/
export function getApiBaseUrl(): string {
const fromEnv = (import.meta.env.VITE_US_API_BASE as string | undefined)?.trim()
if (fromEnv) return fromEnv.replace(/\/$/, '')
if (import.meta.env.DEV && typeof window !== 'undefined') return ''
return US_BACKEND_ORIGIN_FALLBACK
}
/**
* 图片等静态资源根(与 API 同域)。H5 开发时 API 仍用相对路径走 Vite /api 代理,
* 但 /picture/... 若不加域名会请求到 dev server 导致 404,故在此返回后端根域。
*/
export function getStaticMediaOrigin(): string {
const apiBase = getApiBaseUrl()
if (apiBase) return apiBase
if (import.meta.env.DEV && typeof window !== 'undefined') {
return US_BACKEND_ORIGIN_FALLBACK
}
return ''
}
export function buildApiUrl(path: string): string {
const base = getApiBaseUrl()
const p = path.startsWith('/') ? path : `/${path}`
return base ? `${base}${p}` : p
}