远程和本地服务器地址
This commit is contained in:
@@ -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环境直接使用完整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