小编Imt*_*que的帖子

为 SPA 前端配置 Spring Framework 5.3+、Spring Boot 2.3+ 路由

我有一个使用 Angular 制作的简单前端应用程序。所有路由均由 Angular 处理,因此我希望 Spring boot 将所有页面流量转发到,"/"以便 Angular 路由可以处理它们。

stackoverflow 中已经有一些已知的答案。他们是:

但它们都不再工作了,因为从Spring Framework 5.3 及更高版本开始,它们 AntPathMatcher已被PathPattern. PathPattern与语法兼容,AntPathMatcher但以下内容除外:

仅允许在模式末尾支持多段匹配的“**”。在为给定请求选择最接近的匹配时,这有助于消除大多数歧义原因。

所以这不再起作用:

  // Match everything without a suffix (so not a static resource)
  @RequestMapping(value = "/**/{path:[^.]*}")
  public String redirectAngularRoutes() {
    return "forward:/";
  }
Run Code Online (Sandbox Code Playgroud)

那么从 Spring Framework 5.3 开始,最好的方法是什么?

我们是否指定每个角度路由及其forward如下所示"/",或者还有其他替代方案?

  @RequestMapping({ "/help/**","/view/**","/admin/**" })
  public String redirectAngularRoutes() {
    return "forward:/";
  }
Run Code Online (Sandbox Code Playgroud)

spring routes single-page-application spring-boot angular

18
推荐指数
1
解决办法
3625
查看次数