如何在同一个域/服务器上部署AngularJS app和Spring Restful API服务?

时间:2014-05-28 19:43:19

标签: angularjs spring tomcat spring-boot yeoman

我是Spring和AngularJS的新手。我按照here步骤构建后端restful API,并根据请求发送Json。因此,根据指南,当我运行" mvn spring-boot:run" tomcat服务器从localhost:8080开始。

然后我使用Yeoman角度生成器来构建我的角度应用程序。当我跑步" grunt serve"在我的角应用程序中,前端应用程序在localhost:9000运行。

我该怎么办才能将我的角度应用程序与我在同一域上的Springboot tomcat服务器一起提供,比如localhost:8080?

我可以遵循示例项目吗?我找到了以下项目,但仍然无法使其工作,因为我没有太多关于tomcat的背景。

  1. https://github.com/robharrop/spring-angularjs
  2. https://github.com/GermanoGiudici/angularjs-maven-tomcat-seed
  3. https://github.com/xvitcoder/spring-mvc-angularjs

1 个答案:

答案 0 :(得分:18)

您需要选择:

  • 构建的文件(grunt build然后基本上是dist /目录中的所有内容)
  • 原始文件(您的index.html和所有JS按原样)

并将它们复制到以下文件夹之一(我推荐/ public /):http://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot

  

Spring Boot将自动添加位于以下任何目录中的静态Web资源:

     

/ META-INF /资源/

     

/资源/

     

/静态/

     

/公共/

     

这意味着Spring Boot不仅提供了构建Java或Groovy应用程序的简单方法,您还可以使用它轻松部署客户端JavaScript代码并在真实的Web服务器环境中对其进行测试!

这对于开发来说会很麻烦,因为每次对前端进行更改时都必须重新复制文件。对于生产,您的目标应该是使用spring应用程序部署构建文件的版本化副本。

对于开发,您可能需要考虑让grunt提供Angular内容并运行Tomcat和您的grunt服务器(是节点吗?)并在前端和后端之间启用跨源请求。或者你可以将整个angular目录复制到上面的一个目录中,但这是一个短期的方法。