当前位置: 首页 > 面试题库 >

Spring捕获index.html的所有路由

颛孙天宇
2023-03-14
问题内容

我正在为基于React的单页应用程序开发spring后端,在其中我使用React-Router进行客户端路由。

在index.html页面旁边,后端在路径上提供数据/api/**

为了src/main/resources/public/index.html/我的应用程序的根路径上提供index.html,我添加了一个资源处理程序

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/").addResourceLocations("/index.html");
}

我想要的是在没有其他路由匹配时(例如,当我调用以外的路径时)提供index.html页/api

在spring如何配置这种全包式路线?


问题答案:

由于我的React应用程序可以将根用作前进目标,因此最终为我工作

@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {

  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
      registry.addViewController("/{spring:\\w+}")
            .setViewName("forward:/");
      registry.addViewController("/**/{spring:\\w+}")
            .setViewName("forward:/");
      registry.addViewController("/{spring:\\w+}/**{spring:?!(\\.js|\\.css)$}")
            .setViewName("forward:/");
  }
}

老实说,我不知道为什么必须严格按照这种特定格式来避免无限转发循环。



 类似资料:
  • 问题内容: 我目前正在编写一个API,它将要求用户在每个请求的标头中传递身份验证令牌。现在我知道我可以创建一条综合路线了 但我想知道如何使它排除某些路线,例如或? 问题答案: 我不确定用户访问或时要发生什么,但是您可以为它们创建单独的路由;如果您在全部接收之前声明它们,则它们在处理传入请求时会首先遇到麻烦:

  • 指的是指数的Spring综合路线。html,我正在尝试使用regex来捕获所有路由。但我得到了一个错误: 标记错误:java.util.regex.模式语法异常,在索引2处悬挂元字符“*” 当我通过修复这个问题时,我的正则表达式无法捕捉路由。 要求就同样的问题提供指导。

  • 我有一个前端带有angular的spring boot应用程序。 我正在使用html5模式的ui路由器,我希望spring能够呈现相同的索引。所有未知路径上的html。 所以我的问题是,我如何创建一个后备映射,但它允许通过资源?

  • 我正在为一个基于React的单页应用程序开发一个spring后端,其中我使用react-router进行客户端路由。

  • 我正在使用S3托管一个javascript应用程序,该应用程序将使用HTML5 pushStates。问题是,如果用户为任何URL添加书签,它将无法解析为任何内容。我需要的是接收所有url请求并在S3桶中提供根index.html的能力,而不是仅仅进行完全重定向。那么我的javascript应用程序就可以解析URL并提供适当的页面。 有没有办法告诉S3为所有URL请求提供index.html服务,

  • 问题内容: 在Linux下的python 2.6中,我可以使用以下命令来处理TERM信号: 除了仅一次设置一个信号,是否可以为该过程接收的所有信号设置处理程序? 问题答案: 您可以循环浏览信号模块中的信号并进行设置。