我想从Spring Boot服务器应用程序提供ReactJS UI应用程序的Webpack构建结果。
在Webpack构建中,所有资源都在“ dist”文件夹中生成,即index.html,bundle.js等...以http://localhost/index.html
的身份访问Spring Boot应用程序从http://localhost/api/xxx
提供API URL答案 0 :(得分:3)
.env
文件(在package.json旁边)PUBLIC_URL=/nameContextRoot
放入.env
文件中(上下文根名称通常是war文件的名称)npm run build
对我来说,它在react项目的build
目录中生成内容
static
目录 static
目录应该是src/main/resources
清理并重建spring boot项目并运行它
内容已正确提供
更新
Spring Boot结构
D:.
├───.mvn
│ └───wrapper
├───.settings
├───src
│ ├───main
│ │ ├───java
│ │ │ └───my.java.stuff
│ │ ├───resources
│ │ │ └───static
│ │ │ └───static
│ │ │ ├───css
│ │ │ └───js
│ │ └───webapp
│ └───test
│ └───java
│ └───my.java.tests
├───target
│ ├───classes
│ │ ├───java.classes
│ │ └───static
│ │ ├───css
│ │ ├───js
│ │ └───static
│ │ ├───css
│ │ └───js
│ ├───generated-sources
│ │ └───annotations
│ ├───m2e-wtp
│ │ └───web-resources
│ │ └───META-INF
│ │ └───maven
│ │ └───java.stuff
│ ├───maven-archiver
│ ├───maven-status
│ │ └───maven-compiler-plugin
│ │ └───compile
│ │ └───default-compile
│ ├───rclient-0.0.1-SNAPSHOT
│ │ ├───META-INF
│ │ └───WEB-INF
│ │ ├───classes
│ │ │ ├───java stuff
│ │ │ └───static
│ │ └───lib
│ └───test-classes
└───WebContent
└───META-INF
ReactJS项目结构
D:.
├───build
│ └───static
│ ├───css
│ └───js
├───node_modules
├───public
└───src
├───components
├───domain
└───util
您的api端点也将在上下文根下提供。他们与React无关。
@Codo关于使用反向代理访问静态内容的提示仍然有效。但是在这里,您专门询问了如何在spring boot应用程序中托管react应用程序。