我在使用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页面。
"proxy": "http://localhost:8080"
manifest.json
我尝试运行npm run build,然后将目录中生成的所有文件复制/build到我的spring项目的中/src/main/resources。我特别复制了:
npm run build
/build
/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并尝试加载页面时,也会发生相同的问题。
mvn install
我还缺少其他配置步骤吗?我知道可能需要一些基本的URL配置,以便在开发人员模式之外使用其余的API,但是如果没有任何其余调用,我什至无法加载页面。我试图移动的index.html像不同的位置/resources/static和/resources/public。任何帮助,将不胜感激。
/resources/static
/resources/public
从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前端插件进行构建,它将“正常工作”。
正如其他人所建议的那样,最好将前端代码和后端代码分开(将它们保存在单独的存储库中)。