Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Spring boot:提供多页内容_Reactjs_Spring Boot - Fatal编程技术网

Reactjs Spring boot:提供多页内容

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文

我正在尝试一些非常简单的事情;创建一个带有多页React前端的Spring引导后端

但是,在打包的应用程序中提供静态js和css文件(通过React构建)时,我遇到了一些问题

完成的构建如下所示:

我的React应用程序(浏览)路由如下:

导出默认类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设置!(提示:这可能是由于生成默认视图名称而导致的未指定视图。
我编辑了我的答案以防止选择静态资源此操作有效!(与问题中的控制器方法结合使用)!