当前位置: 首页 > article >正文

vue路由history模式springBoot/Nginx配置

 

 精确配置路由

  • 在配置路由时,要确保数据接口的路由配置在这个宽泛规则之前,并且路由规则尽量精确。比如:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ApiController {

    // 精确的数据接口路由
    @GetMapping("/api/users")
    public String getUsers() {
        return "List of users";
    }

    // 宽泛的单页面应用路由
    @GetMapping("/{path:[^\\.]*}")
    public String forward() {
        return "forward:/index.html";
    }
}

这样,当请求 /api/users 时,会优先匹配 @GetMapping("/api/users") 方法,而不是 /{path:[^\\.]*}

区分 API 前缀

  • 为数据接口统一添加特定的前缀,如 /api,并且在配置路由时,优先处理这些带前缀的路径。同时,可以调整宽泛规则的匹配路径,避免和 API 路径冲突。
@RestController
public class ApiController {

    // 带 API 前缀的数据接口路由
    @GetMapping("/api/**")
    public String handleApiRequest() {
        return "This is an API response";
    }

    // 单页面应用路由,排除 API 前缀路径
    @GetMapping("/{path:^(?!api).*}")
    public String forward() {
        return "forward:/index.html";
    }
}

  • 这里 /{path:^(?!api).*} 表示匹配不以 api 开头的路径,进一步确保数据接口不会被误转发。

通过以上机制和措施,可以有效避免正常的数据请求被误转发到 index.html

nginx

server {
        #根路径配置
        location / {
            # root 指定到前端打包文件夹
            root /views/vue3_demo/root_router;
            # 核心通过try_files 
            # 1)优先到root_router目录查找对应的资源
            # 2)找不到对应的资源,将url路径当目录找
            # 3)目录也没有,就固定rewite到/index.html路径
            try_files $uri $uri/ /index.html;
            index index.html index.htm;
        }
}


http://www.kler.cn/a/518977.html

相关文章:

  • ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)解决天坑问题及加速pip下载
  • 大模型学习计划
  • PHP EOF (Heredoc) 详解
  • 基于SMPL的三维人体重建-深度学习经典方法之VIBE
  • MySQL(1)
  • C语言精粹:深入探索字符串函数
  • 【优选算法】11----最大连续1的个数|||
  • 【湖北省乡镇界】面图层arcgis数据乡镇名称和编码wgs84坐标无偏移shp格式内容测评
  • debian12.9编译freeswitch1.10.12【默认安装】
  • 掌握Gradle构建脚本:Kotlin DSL配置指南与最佳实践
  • 机器学习day3
  • 本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程
  • 71.在 Vue 3 中使用 OpenLayers 实现按住 Shift 拖拽、旋转和缩放效果
  • Linux MySQL离线安装
  • 《深入解析:DOS检测的技术原理与方法》
  • 9.business english-agreement
  • WPS添加文本超简单,批量操作不费劲-Excel易用宝
  • 基于Flask框架和Hive数仓的农业数据分析系统
  • 【论文阅读】RT-SKETCH: GOAL-CONDITIONED IMITATION LEARNING FROM HAND-DRAWN SKETCHES
  • 设计模式的艺术-中介者模式
  • 深度学习 Pytorch 单层神经网络
  • React Native 0.77 发布:更强的样式支持与性能优化
  • 图像处理算法研究的程序框架
  • 将本地项目上传到 GitLab/GitHub
  • 基于 Bash 脚本的系统信息定时收集方案
  • 机器学习-使用梯度下降最小化均方误差