我正在构建在子路由下响应单页应用程序的 spring 网站,我当前的 url 结构应该如下所示
localhost/admin/** => react app
localhost/** => spring thymeleaf/rest/websocket app for everything else
react app mapping:
localhost/admin/static/** => static react files
localhost/admin/** => react index.html for everything else
Example of project resources structure:
resources/
admin/ <= my admin react files is here
index.html
static/ <= react css, js, statics
templates/ <= thymeleaf templates
static/ <= theamleaf static
...
所以我需要index.html
为每个 url 路由及其子路由转发react文件。除了静态文件外,基本上都是单页应用程序
看起来是一项常见的任务,以下是我已经尝试过的一些事情:
项目Spring的全部工作演示+react+的gradle如何构建项目,为什么我不能把react在不同的目录中的文件(/资源/静态为例):https://github.com/varren/spring-react-example
不能使用forward:/admin/index.html
for/admin/**
因为这会创建递归,因为admin/index.html
它也在下面admin/**
并且必须以admin/static/**
某种方式拦截。
无法使用
addResourceHandlers
的WebMvcConfigurerAdapter
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/admin/**")
.addResourceLocations("classpath:/admin/");
}
index.html
仅映射到/admin/index.html
url,此选项几乎有效,但前提是您从 localhost/admin/index.html
看到这个,这个,这个和许多其他链接,我也有一些解决方案,但也许有通用选项我看不到