远程和本地服务器地址
This commit is contained in:
@@ -1,15 +1,86 @@
|
|||||||
/**
|
/**
|
||||||
* API 配置
|
* API 配置
|
||||||
* 统一管理后端接口地址
|
* 统一管理后端接口地址,并根据环境自动切换
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// API 基础地址
|
import envConfig from '@/common/env.js'
|
||||||
export const API_BASE_URL = 'https://api.huayang-star.com/'
|
|
||||||
|
|
||||||
// 导出完整的 API URL 构建函数
|
const API_TARGETS = {
|
||||||
export function getApiUrl(path) {
|
local: 'http://localhost:8090/',
|
||||||
// 确保 path 以 / 开头
|
prod: 'https://api.huayang-star.com/'
|
||||||
const apiPath = path.startsWith('/') ? path : `/${path}`
|
|
||||||
return `${API_BASE_URL}${apiPath.replace(/^\//, '')}`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ENV_ALIAS = {
|
||||||
|
development: 'local',
|
||||||
|
production: 'prod',
|
||||||
|
local: 'local',
|
||||||
|
prod: 'prod'
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizeBaseUrl(url) {
|
||||||
|
return url.endsWith('/') ? url : `${url}/`
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveApiEnv() {
|
||||||
|
// 优先读取 env.js 配置文件
|
||||||
|
const fileEnv = envConfig?.apiEnv
|
||||||
|
if (fileEnv) {
|
||||||
|
const mapped = ENV_ALIAS[fileEnv.toLowerCase()]
|
||||||
|
if (mapped) {
|
||||||
|
console.log('[API Config] 使用 env.js 配置:', fileEnv, '=>', mapped)
|
||||||
|
return mapped
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 其次读取环境变量
|
||||||
|
const runtimeEnv =
|
||||||
|
typeof process !== 'undefined' && process?.env
|
||||||
|
? process.env.UNI_APP_API_ENV || process.env.NODE_ENV
|
||||||
|
: ''
|
||||||
|
const aliasKey = runtimeEnv ? runtimeEnv.toLowerCase() : ''
|
||||||
|
const env = ENV_ALIAS[aliasKey] || 'prod'
|
||||||
|
console.log('[API Config] 使用环境变量:', runtimeEnv, '=>', env)
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
|
const API_ENV = resolveApiEnv()
|
||||||
|
|
||||||
|
// API 基础地址(根据当前环境自动判定)
|
||||||
|
export const API_BASE_URL = normalizeBaseUrl(API_TARGETS[API_ENV] || API_TARGETS.prod)
|
||||||
|
|
||||||
|
// 输出当前配置信息(便于调试)
|
||||||
|
console.log('[API Config] 当前环境:', API_ENV)
|
||||||
|
console.log('[API Config] API_BASE_URL:', API_BASE_URL)
|
||||||
|
|
||||||
|
// 当前 API 环境(local / prod)
|
||||||
|
export function getApiEnv() {
|
||||||
|
return API_ENV
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出完整的 API URL 构建函数
|
||||||
|
// H5环境下:local环境直接使用完整URL(避免代理配置问题),prod环境使用代理路径
|
||||||
|
// 其他环境使用完整URL
|
||||||
|
export function getApiUrl(path = '') {
|
||||||
|
const apiPath = path.startsWith('/') ? path : `/${path}`
|
||||||
|
// #ifdef H5
|
||||||
|
// H5环境下,local环境直接使用完整URL,prod环境使用代理路径
|
||||||
|
if (API_ENV === 'local') {
|
||||||
|
// local环境直接使用完整URL,避免代理配置问题
|
||||||
|
const fullPath = apiPath.startsWith('/') ? apiPath.slice(1) : apiPath
|
||||||
|
const fullUrl = `${API_BASE_URL}${fullPath}`
|
||||||
|
console.log('[API Config] H5环境(local)直接使用完整URL:', fullUrl)
|
||||||
|
return fullUrl
|
||||||
|
} else {
|
||||||
|
// prod环境使用代理路径,代理配置在manifest.json中
|
||||||
|
console.log('[API Config] H5环境(prod)使用代理路径:', apiPath, '(代理target:', API_BASE_URL.replace(/\/$/, ''), ')')
|
||||||
|
return apiPath
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
// #ifndef H5
|
||||||
|
// 其他环境使用完整URL
|
||||||
|
const fullPath = apiPath.startsWith('/') ? apiPath.slice(1) : apiPath
|
||||||
|
const fullUrl = `${API_BASE_URL}${fullPath}`
|
||||||
|
console.log('[API Config] 非H5环境使用完整URL:', fullUrl)
|
||||||
|
return fullUrl
|
||||||
|
// #endif
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user