解决fastadmin、uniapp打包上线H5项目路由冲突问题
FastAdmin 基于 ThinkPHP,默认采用 URL 路由模式(如
/index.php/module/controller/action
),且前端资源通常部署在公共目录(如public/
)下。Uniapp 的历史模式需要将所有前端路由请求重定向到index.html
,而 FastAdmin 的后端路由可能与之冲突。
UNIAPP项目有两种路由模式,一种是哈希模式和历史模式,如果选用历史模式,如果选用哈希模式,#后面的参数会被服务器忽略掉,可以正常使用没有问题,但是选用history模式,则需要通过伪静态配置:
例如,我这里的项目放在public/web文件夹下面,伪静态的配置追加:
# 前端历史模式适配:匹配所有路径,优先返回前端页面(需根据实际路径调整)
if (!-e $request_filename) {
# 假设前端入口文件为 /public/web/index.html
rewrite ^/web/(.*)$ /web/index.html last;
}
这样就可以正常访问history模式的H5页面了