Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yangkaifeng
uni-app
提交
aa8b7779
U
uni-app
项目概览
yangkaifeng
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
3
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
aa8b7779
编写于
1月 19, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(h5): serve static file (#3201)
上级
25192ba9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
42 addition
and
8 deletion
+42
-8
packages/uni-cli-shared/src/vite/utils/url.ts
packages/uni-cli-shared/src/vite/utils/url.ts
+22
-1
packages/uni-h5-vite/src/plugin/configureServer/static.ts
packages/uni-h5-vite/src/plugin/configureServer/static.ts
+20
-7
未找到文件。
packages/uni-cli-shared/src/vite/utils/url.ts
浏览文件 @
aa8b7779
...
...
@@ -32,9 +32,30 @@ export function parseVueRequest(id: string) {
}
}
const
importQueryRE
=
/
(\?
|&
)
import
(?:
&|$
)
/
const
importQueryRE
=
/
(\?
|&
)
import
=
?
(?:
&|$
)
/
export
const
isImportRequest
=
(
url
:
string
)
=>
importQueryRE
.
test
(
url
)
/**
* Prefix for resolved fs paths, since windows paths may not be valid as URLs.
*/
export
const
FS_PREFIX
=
`/@fs/`
/**
* Prefix for resolved Ids that are not valid browser import specifiers
*/
export
const
VALID_ID_PREFIX
=
`/@id/`
export
const
CLIENT_PUBLIC_PATH
=
`/@vite/client`
export
const
ENV_PUBLIC_PATH
=
`/@vite/env`
const
internalPrefixes
=
[
FS_PREFIX
,
VALID_ID_PREFIX
,
CLIENT_PUBLIC_PATH
,
ENV_PUBLIC_PATH
,
]
const
InternalPrefixRE
=
new
RegExp
(
`^(?:
${
internalPrefixes
.
join
(
'
|
'
)}
)`
)
export
const
isInternalRequest
=
(
url
:
string
):
boolean
=>
InternalPrefixRE
.
test
(
url
)
export
const
queryRE
=
/
\?
.*$/
export
const
hashRE
=
/#.*$/
...
...
packages/uni-h5-vite/src/plugin/configureServer/static.ts
浏览文件 @
aa8b7779
import
fs
from
'
fs
'
import
path
from
'
path
'
import
debug
from
'
debug
'
import
type
{
ViteDevServer
}
from
'
vite
'
import
type
{
Connect
,
ViteDevServer
}
from
'
vite
'
import
{
createFilter
}
from
'
@rollup/pluginutils
'
import
{
isImportRequest
,
isInternalRequest
,
normalizePath
,
PUBLIC_DIR
,
}
from
'
@dcloudio/uni-cli-shared
'
...
...
@@ -34,13 +35,25 @@ export const initStatic = (server: ViteDevServer) => {
}
},
})
server
.
middlewares
.
use
((
req
,
res
,
next
)
=>
{
// skip import request
if
(
isImportRequest
(
req
.
url
!
))
{
return
next
()
const
viteServePublicMiddlewareIndex
=
server
.
middlewares
.
stack
.
findIndex
(
(
middleware
)
=>
{
return
(
(
middleware
.
handle
as
Function
).
name
===
'
viteServePublicMiddleware
'
)
}
return
serve
(
req
,
res
,
next
)
})
)
// 替换 vite 自带的 public middleware
if
(
viteServePublicMiddlewareIndex
>
-
1
)
{
server
.
middlewares
.
stack
.
splice
(
viteServePublicMiddlewareIndex
,
1
,
{
route
:
''
,
handle
:
((
req
,
res
,
next
)
=>
{
if
(
isImportRequest
(
req
.
url
!
)
||
isInternalRequest
(
req
.
url
!
))
{
return
next
()
}
return
serve
(
req
,
res
,
next
)
})
as
Connect
.
NextHandleFunction
,
})
}
}
export
function
createPublicFileFilter
(
base
:
string
=
'
/
'
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录