我正在开发一个基于反应的单页面应用程序的弹簧后端,我正在使用react-router进行客户端路由.
在index.html页面旁边,后端提供路径上的数据/api/**.
为了从我的应用程序src/main/resources/public/index.html的根路径上提供我的index.html,/我添加了一个资源处理程序
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/").addResourceLocations("/index.html");
}
Run Code Online (Sandbox Code Playgroud)
我想要的是在没有其他路由匹配的情况下提供index.html页面,例如当我调用除了以外的路径时/api.
如何在春季配置这种全能路线?
spring spring-mvc catch-all single-page-application spring-boot
使用上下文路径时,我在 Spring Boot 中遇到静态内容问题。即:我希望将我的应用程序部署到localhost:8080/{appname}/
当我在没有上下文路径的情况下运行应用程序时,一切正常,Spring Boot 找到并运行我的.html文件(来自资源/模板/,我正在使用Thymeleaf)和 JS 文件(来自资源/静态/js/)但是当我添加上下文路径时与:
server.context-path=/{appname}
Run Code Online (Sandbox Code Playgroud)
或者
server.servlet-path=/{appname}
Run Code Online (Sandbox Code Playgroud)
那么.html页面仍然显示由JS文件产生404错误。
我曾试图改变spring.resources.static-locations的application.properties并覆盖addResourceHandlers()在我的方法,MvcConfig.class但既不似乎工作
我使用一个MvcConfig类是因为我需要定义 aCookieLocaleResolver和 aMessageSource但这就是我在MvcConfig. 我不使用@EnableWebMvc,只有@SpringBootApplication带有@ComponentScan.
任何帮助,将不胜感激 :)