远程和本地服务器地址

This commit is contained in:
ZLI263
2025-11-28 10:14:03 +08:00
parent 1cf9a31793
commit 1fa9d45b3c

View File

@@ -1,15 +1,86 @@
/**
* API 配置
* 统一管理后端接口地址
* 统一管理后端接口地址,并根据环境自动切换
*/
// API 基础地址
export const API_BASE_URL = 'https://api.huayang-star.com/'
import envConfig from '@/common/env.js'
// 导出完整的 API URL 构建函数
export function getApiUrl(path) {
// 确保 path 以 / 开头
const apiPath = path.startsWith('/') ? path : `/${path}`
return `${API_BASE_URL}${apiPath.replace(/^\//, '')}`
const API_TARGETS = {
local: 'http://localhost:8090/',
prod: 'https://api.huayang-star.com/'
}
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环境直接使用完整URLprod环境使用代理路径
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
}