猿问

如何在 Tomcat 服务器中部署 Angular 8 应用程序?

我已经完成了有关 Angular 的教程,我想将其部署到我的 tomcat 服务器中。我使用 eclipse 触发我的 tomcat 服务器,该服务器在 localhost:8080 中打开(我使用/只知道 java 作为后端)。这个 Angular 项目以 Firebase 作为后端,而不是 java。我打算使用java作为后端,因此我需要将其部署在tomcat中。是的,我已经尝试了在 Stack Overflow 和 YouTube 中找到的所有内容。IE,

  1. ng build --prod --aot --base-href=/myapp,放入tomcat中webapps/myapp/<files-from-angular-dist>试了一下。root/myapp/<files-from-angular-dist>

  2. base href ="." 、 base href ="./"base href ="/"、 并放置在 root 和 webapps 中的 dist 文件夹中,但它不起作用。

  3. 不使用 AOT 编译器(不知道我为什么这样做)。

  4. 将其放在我的dynamic-webapp(一个旧的java项目)的webcontent文件夹中。

我应该怎么办 ?

  • Apache Tomcat 版本 - 9.0.22

  • 日食区 - 2019 年 6 月

  • Angular - 8.2.0(来自ng version


小怪兽爱吃肉
浏览 168回答 3
3回答

慕尼黑8549860

要在 Tomcat 中部署 Angular 8 应用程序,只需执行以下命令:ng build --base-href=/应用程序名称调用角度build要求 Angular 构建当前应用程序–base-href”告诉 Angular 创建一个参考目录,生成的 index.html 文件将放置在其中。因此,在当前情况下,生成的文件需要放置在tomcat 目录结构中的/webapps/&nbsp;app-name文件夹中。请注意,当命令成功运行时,它会在项目文件夹/dist文件夹中创建所有必需的文件。另外,当您复制文件(或在本例中为文件夹)时,请确保重新启动 tomcat。

哆啦的时光机

作为替代方案,您可以在架构师 > 构建下的 angular.json 中配置 href: "scripts": [], "baseHref": "/app-name/", "deployUrl": "/app-name/"重要的是解决“深度链接问题”。官方角度文档中也提到:服务器配置因此取消注释(或添加)到 tomcat/conf/server.xml<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" /> 并创建包含内容的文件 tomcat/conf/Catalina/localhost/rewrite.config    RewriteCond %{REQUEST_PATH} !-f    RewriteRule ^/app-one/(.*) /app-one/index.html [L]    RewriteCond %{REQUEST_PATH} !-f    RewriteRule ^/app-two/(.*) /app-two/index.html [L]

潇湘沐

这是一个典型的前端使用Angular、后端使用java的项目案例。我建议您使用 Angular 应用程序作为前端应用程序,它可以作为微服务与 java 后端交互。这意味着您可以从 Angular 应用程序对基于 java 的微服务进行剩余调用。您可以使用如下命令运行 Angular 应用程序,npm install前提npm start是您应该在系统中安装 Node JS。用纱线会更好比 npm 更好的命令。您不需要将基于 Angular 的应用程序部署到 Tomcat 中,您可以开发基于 java 的微服务并将其部署到 Tomcat 中。我建议使用 Spring Boot 创建一个微服务,您可以直接运行,而无需将 Tomcat 作为单独的服务器。Spring Boot 提供内置的嵌入式 Tomcat 容器。
随时随地看视频慕课网APP

相关分类

Java
我要回答