一尘不染

React + Spring Boot部署

spring-boot

我在使用Spring Boot部署react nodejs应用程序时遇到问题。spring应用程序可以在基本的HTML /
JS上正常运行,而且我的react应用程序可以在dev模式下正常运行,但是我似乎缺少将React和spring正确绑定的东西。

当前,我可以使用一些简单的HTML和javascript ajax调用来运行/部署我的spring boot应用程序(不做任何反应)。它可以在我的AWS
ec2上正常运行。

我还可以通过节点JS“ npm start”以dev模式运行我的react应用程序,并将其指向我的本地spring
boot应用程序。(我添加"proxy": "http://localhost:8080"manifest.json)。我正在努力进行下一步工作,实际上是将我的React应用程序与其余的Spring应用程序捆绑到战争中,并使其正常运行。没有休息电话,我什至无法加载反应性hello-
world页面。

我尝试运行npm run build,然后将目录中生成的所有文件复制/build到我的spring项目的中/src/main/resources。我特别复制了:

react-app/build/static/* -> spring-app/src/main/resources/static/.

react-app/build/* -> spring-app/src/main/resources/.

构建war(mvn install)并在本地运行war之后,尝试加载未指定任何页面的服务器时出现404错误。当我指定index.html时,出现错误,因为它无法将JS和CSS文件加载到我的静态目录中。当我将战争部署到ec2并尝试加载页面时,也会发生相同的问题。

我还缺少其他配置步骤吗?我知道可能需要一些基本的URL配置,以便在开发人员模式之外使用其余的API,但是如果没有任何其余调用,我什至无法加载页面。我试图移动的index.html像不同的位置/resources/static/resources/public。任何帮助,将不胜感激。


阅读 809

收藏
2020-05-30

共1个答案

一尘不染

从Spring看本教程,有一个“ frontend-maven-plugin”,您可能会发现它非常有用。我会放弃战争,只是将您的spring
boot应用程序构建为jar,然后将js文件放在src / main / js中,将index.html放在/ src / main / resources
/ static中。

该教程位于:

https://spring.io/guides/tutorials/react-and-spring-data-
rest/

代码在这里可用:

https://github.com/spring-guides/tut-react-and-spring-data-
rest/tree/master/basic

使用与本教程中使用的配置类似的webpack.config.js配置,一旦使用maven前端插件进行构建,它将“正常工作”。

正如其他人所建议的那样,最好将前端代码和后端代码分开(将它们保存在单独的存储库中)。

2020-05-30