Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
basic-uniapp-v3
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-uniapp-v3
Commits
7bb70cad
提交
7bb70cad
authored
2月 03, 2023
作者:
方治民
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 网络资源代理处理方式优化、调整开发环境 API_URL_PREFIX
上级
e9325476
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
21 行增加
和
11 行删除
+21
-11
net.ts
src/utils/net.ts
+2
-1
proxy.ts
src/utils/proxy.ts
+19
-10
没有找到文件。
src/utils/net.ts
浏览文件 @
7bb70cad
import
{
useGlobSetting
}
from
'/@/hooks/setting'
const
globSetting
=
useGlobSetting
()
const
API_URL_PREFIX
=
globSetting
.
urlPrefix
let
HOST
=
globSetting
.
apiUrl
let
API_URL
=
`
${
HOST
}
`
let
API_URL_PREFIX
=
globSetting
.
urlPrefix
// =============================================================================
// ✨ 生产环境
...
...
@@ -13,6 +13,7 @@ let API_URL = `${HOST}`
// 📖 开发环境
HOST
=
globSetting
.
apiUrl
API_URL
=
`
${
HOST
}
`
API_URL_PREFIX
=
globSetting
.
urlPrefix
// 🔦 检查生产环境,使用对应 env 中的配置,保留原有方式方便开发中调试
API_URL
=
import
.
meta
.
env
.
MODE
!==
'development'
?
globSetting
.
apiUrl
:
API_URL
...
...
src/utils/proxy.ts
浏览文件 @
7bb70cad
/**
* FIX
D: 固定说明,此文件内不允许使用 import.env 之类的环境变量,否则会导致地图
模块异常
* FIX
ED: 固定说明,此文件内不允许使用 import.env 之类的环境变量,否则会导致使用 Webview/RenderJS 相关
模块异常
*/
const
PROXY_LIST
=
[
const
PROXY_LIST
:
[[
string
,
string
]?]
=
[
// eg: 开发环境
// ['http://192.168.1.100:18100', `http://proxy.yiring.com:41180`],
// eg: 测试环境
// ['http://10.111.117.15:18100', `http://proxy.yiring.com:42180`],
// eg: 生产环境
// [
'http://192.168.0.100:18100', `https://oss
.app.yiring.com`],
// [
`http://192.168.0.100:18100`, `https://oss.beta
.app.yiring.com`],
]
/**
...
...
@@ -28,7 +28,7 @@ export const getExtranetUrl = (url: string): string => {
/**
* 将代理/预览地址(公网)转换成内部地址(内网)
* eg: 主要用于解决内网文件上传后预览,但是实际上传存储时还是内网地址的问题
* @param url
代理/公网地址
* @param url
包含代理/公网地址的内容
*/
export
const
getIntranetUrl
=
(
url
:
string
):
string
=>
{
let
uri
=
url
...
...
@@ -46,13 +46,22 @@ export const getIntranetUrl = (url: string): string => {
* @returns 替换本地链接后的数据结果
*/
export
const
handleResponseResource
=
<
T
>
(
body
:
T
,
options
:
Recordable
)
=>
{
if
(
options
.
apiUrl
.
includes
(
'proxy.yiring.com'
)
&&
typeof
body
===
'object'
)
{
let
text
=
JSON
.
stringify
(
body
)
for
(
const
[
intranet
,
extranet
]
of
PROXY_LIST
)
{
// 当需要处理内外网资源地址映射时,进行内容处理
const
isIntranet
=
options
.
apiUrl
.
includes
(
intranet
)
const
isExtranet
=
options
.
apiUrl
.
includes
(
extranet
)
if
(
isIntranet
||
isExtranet
)
{
const
isString
=
typeof
body
===
'string'
const
isObject
=
typeof
body
===
'object'
// 处理内网地址的预览问题
text
=
getExtranetUrl
(
text
)
return
JSON
.
parse
(
text
)
as
T
// 处理有效数据
if
(
isString
||
isObject
)
{
let
text
=
isString
?
body
:
JSON
.
stringify
(
body
)
// 说明: 如果接口地址是内网,就需要将外网链接转换成内网链接,如果是外网接口地址,则需要将内网地址转换成外网链接,来保证无论内外网访问平台资源都是正常的
text
=
isExtranet
?
getExtranetUrl
(
text
)
:
getIntranetUrl
(
text
)
return
(
isString
?
text
:
JSON
.
parse
(
text
))
as
T
}
}
}
return
body
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论