我正在使用gradle使用react客户端开发Spring启动应用程序。我是所有这些技术的新手。 目前我能够创建包含以下文件夹的war文件:
目前,在将war部署到tomcat后,我可以访问http://localhost:8080/app-name/public/上的客户端静态内容。此外,我能够在http:// localhost:8080 / app-name / route上访问spring控制器中定义的路由(这些仅用于测试目的,我希望只能通过客户端的REST调用访问此命令)。
现在,我想要的是在路由http://localhost:8080/app-name/xxx-yyy/public
下提供静态客户端内容我不知道什么是正确的方法(实际上,我知道的唯一方法是在tomcat上创建xxx-yyy子文件夹,在其中放置一个公共文件夹。我认为这是不好的方法)。其他方式将以某种方式从春季控制器前进,但我无法做到。
这可能是一个糟糕的概念,我应该采取其他方式。我很乐意提出任何建议。
谢谢
答案 0 :(得分:2)
我猜你正在使用create-react-app。
对于生产部署,React应用程序仅包含静态文件。这些文件是使用create-react-app生成的:npm run build
。参看关于deployment的官方文档。
因此,您只需在Spring Boot应用程序中提供这些静态文件,例如在src/main/resources/static
文件夹中。以下是有关static content in Spring Boot的文档。
最后,Tomcat将运行动态REST Web服务(例如在/api
)和React文件。
注意:如果您使用的是Spring Security,请确保可以公开使用index.html等React文件。