首页 文章

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

提问于
浏览
26

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

然后我使用Yeoman角度生成器来构建我的角度应用程序 . 当我在我的角度应用程序中运行“grunt serve”时,前端应用程序运行在localhost:9000 .

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

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

1 回答

  • 18

    你需要采取以下两种方式:

    • 内置文件( grunt build 然后基本上是dist /目录中的所有内容)

    • 原始文件(你的index.html和所有JS as-is)

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

    Spring Boot将自动添加位于以下任何目录中的静态Web资源:/ META-INF / resources / / resources / / static / / public /这意味着Spring Boot不仅提供了构建Java或Groovy的简单方法应用程序,您还可以使用它轻松部署客户端JavaScript代码并在真实的Web服务器环境中对其进行测试!

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

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

相关问题