gaoluyang
4 天以前 c7566bba45e6f90594d36ec4b80ac4ff89f577ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// javaApi 的求值逻辑,抽出来供非组件代码复用。
//
// 源码在 main.js 里把它挂在 Vue.prototype.javaApi 上,业务代码靠 `Vue.prototype.javaApi`
// 或模板里的 `javaApi` 取用。Vue3 没有 Vue.prototype,组件内走
// app.config.globalProperties(见 main.js),而普通 js 模块(如 utils/file.js)
// 拿不到实例,所以把这段逻辑单独放一份,两边共用,避免同一个规则写两遍。
//
// 语义与源码 main.js:68-71 完全一致:
//   - 取 VITE_APP_BASE_URL,缺省回落到 VITE_APP_BASE_API
//   - 是绝对地址就去掉末尾斜杠直接用
//   - 是相对路径(如 '/dev-api')就补上当前站点的 origin
export function getJavaApi() {
  const base = import.meta.env.VITE_APP_BASE_URL || import.meta.env.VITE_APP_BASE_API
  return /^https?:\/\//i.test(base)
    ? base.replace(/\/$/, '')
    : window.location.origin + '/' + base.replace(/^\/+|\/+$/g, '')
}