Reactjs Spring boot:提供多页内容
我正在尝试一些非常简单的事情;创建一个带有多页React前端的Spring引导后端 但是,在打包的应用程序中提供静态js和css文件(通过React构建)时,我遇到了一些问题 完成的构建如下所示: 我的React应用程序(浏览)路由如下:Reactjs Spring boot:提供多页内容,reactjs,spring-boot,Reactjs,Spring Boot,我正在尝试一些非常简单的事情;创建一个带有多页React前端的Spring引导后端 但是,在打包的应用程序中提供静态js和css文件(通过React构建)时,我遇到了一些问题 完成的构建如下所示: 我的React应用程序(浏览)路由如下: 导出默认类App扩展React.Component{ render(){ 返回( ); } } 所有第一级路径都可以工作(/,/blog,/404),但每当我添加一个类似/blog/some post的级别时,我都会得到由React生成的静态js和css文
导出默认类App扩展React.Component{
render(){
返回(
);
}
}
所有第一级路径都可以工作(/
,/blog
,/404
),但每当我添加一个类似/blog/some post
的级别时,我都会得到由React生成的静态js和css文件的404。
例如:
GEThttp://localhost:8081/blog/static/css/2.something.chunk.css
我使用的唯一相关的spring依赖项是SpringWeb(没有Thymeleaf或其他模板)
我认为这是控制器的问题,所以我添加了以下内容,但没有成功
@控制器
公共类WebMainController{
@请求映射({”/“,”/blog“,“{**}/static/{**}”)
公共字符串索引(){
返回“index.html”;
}
@请求映射(“/blog/{**}”)
公共字符串blog(){
返回“/”;
}
}
我试着玩数值/通配符/等等。。。但是没有成功。
对“css”文件(如上所述)的请求甚至没有传递给控制器
我尝试了在网上找到的几种解决方案,但似乎都不管用。从添加自定义资源处理程序到将生成文件复制到其他位置
我是不是错过了什么蠢事?
(我的)没有足够的信息可以确定,但我想不是
http://localhost:8081/blog/static/css/2.something.chunk.css
它应该查找http://localhost:8081/static/css/2.something.chunk.css
您说过所有这些都适用于一级路径,因此HTML代码开头的
应该可以解决这个问题。或者在任何地方使用绝对路径。当构建S单个apppage时,后端服务器应返回所有路由的索引页。然后,react路由器将执行此任务
以下代码可能会解决此问题:
@RequestMapping(value = "/{path:[^\\.]+}")
public String index() {
return "forward:/";
}
为什么你有GEThttp://localhost:8081/blog/static/css/2.something.chunk.css
?它应该是http://localhost:8081/static/css/2.something.chunk.css
这只是为了显示浏览器正在执行的请求,还尝试了此操作,但结果是ServletException:ServletException:循环视图路径[index.html]:将再次发送回当前处理程序URL[/index.html]。检查您的ViewResolver设置!(提示:这可能是由于生成默认视图名称而导致的未指定视图。
我编辑了我的答案以防止选择静态资源此操作有效!(与问题中的控制器方法结合使用)!