【问题标题】:How do I deploy an angular2 app on a local tomcat server?如何在本地 tomcat 服务器上部署 angular2 应用程序?
【发布时间】:2016-10-22 08:18:24
【问题描述】:

我一直在用 lite 服务器开发一个 angular2 应用程序。现在我想在 tomcat 服务器上部署这个应用程序以连接 java 后端。我一直在使用角度 cli。我已经使用命令“ng build -prod”来生成 dist 文件夹。根据 udemy 关于 angular2 的教程,这个文件夹的内容就是部署 angular2 项目所需的全部内容。我把这个文件夹的内容放在java项目的WebContent文件夹中,然后点击eclipse IDE中的绿色按钮开始提供文件。在其他项目中我可以通过这种方式成功部署 html 和 javscript 文件。但是对于这个 angular2 项目,“正在加载...”出现并且应用程序永远不会启动。控制台显示这些错误。

获取 http://localhost:8080/vendor/es6-shim/es6-shim.js [HTTP/1.1 404 Not Found 3ms] 得到 http://localhost:8080/vendor/reflect-metadata/Reflect.js [HTTP/1.1 404 Not Found 4ms] 得到 http://localhost:8080/vendor/systemjs/dist/system.src.js [HTTP/1.1 404 Not Found 4ms] 得到 http://localhost:8080/vendor/zone.js/dist/zone.js [HTTP/1.1 404 Not Found 4ms] 得到 http://localhost:8080/vendor/reflect-metadata/Reflect.js [HTTP/1.1 404 Not Found 1ms] 得到 http://localhost:8080/vendor/systemjs/dist/system.src.js [HTTP/1.1 404 Not Found 2ms] 得到 http://localhost:8080/vendor/zone.js/dist/zone.js [HTTP/1.1 404 Not Found 2ms] ReferenceError: 系统未定义

这些错误对我来说似乎很奇怪,因为我在这些位置看到文件。

当我在 angular2 cli 项目文件夹中运行 ng serve 时,应用程序运行良好。

如何在不运行轻型服务器的情况下将 dist 文件夹部署在 tomcat 服务器中,或者是否可能需要同时运行轻型服务器?最好的方法是什么?

【问题讨论】:

  • 不确定eclipse的问题是什么,但我在intellij15中做了同样的事情,并且应用程序运行良好。
  • 我用 Netbeans 8.2 完成了它,它在内置 Tomcat 和外部都运行良好。您应该设置 om deploy 参数

标签: tomcat angular


【解决方案1】:

使用 ng build --environment=prod 生成 dist 文件夹并将 dist 文件夹内容复制到 tomcat /opt/tomcat/webapps/ROOT/ 文件夹中。

当我们在浏览器中点击http://localhost:8080/ 时,会自动加载 index.html 文件。

谢谢

【讨论】:

    【解决方案2】:

    我正在运行一个小脚本来构建项目,然后将其复制到 tomcat。我告诉 Angular 它将在 tomcat 中运行的基本目录是什么。

    #!/bin/sh
    ng build --base-href /angular/ --prod
    mkdir -p /home/xxx/apache-tomcat-8.0.37/webapps/angular
    cp -R /home/xxx/angular-clitest/dist/* /home/xxx/apache-tomcat-8.0.37/webapps/angular/
    

    运行后,启动 tomcat,您可以通过以下方式访问它:http://localhost:8080/angular

    【讨论】:

    • ng build -prod -bh /angular -d /angular
    • @nuzz,谢谢,但是,正如您在 tomcat 服务器上部署 dist 文件夹(构建文件夹)时看到的,应用程序在 http 上运行。如何在 https 上运行我们的应用程序?
    • @Ahmadmnzr 这与这个问题无关。你应该问一个新问题。但作为一个快速的答案,您要么需要通过 apache 代理 tomcat,要么阅读如何使 tomcat 执行 ssl:tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
    • 谢谢,我找到了解决方案,我们必须更新tomcat的server.xml和web.xml,然后任何应用程序都会在https上运行并重定向。
    • @nuzz 是否可以在 Sentora 服务上部署 Angular 项目?请告诉我我需要知道。
    猜你喜欢
    • 2018-06-07
    • 2019-06-14
    • 2019-06-15
    • 2020-07-18
    • 1970-01-01
    • 2020-11-27
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多