Spring启动并在tomcat上运行反应

时间:2017-06-10 10:42:38

标签: javascript spring reactjs tomcat web-deployment

我正在使用gradle使用react客户端开发Spring启动应用程序。我是所有这些技术的新手。 目前我能够创建包含以下文件夹的war文件:

  • META-INF
  • public(包含客户端部分的构建 - index.html,index.js和其他.js脚本)
  • WEB-INF(包含已编译的spring boot后端应用程序)

目前,在将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子文件夹,在其中放置一个公共文件夹。我认为这是不好的方法)。其他方式将以某种方式从春季控制器前进,但我无法做到。

这可能是一个糟糕的概念,我应该采取其他方式。我很乐意提出任何建议。

谢谢

1 个答案:

答案 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文件。