如何在ng-build之后部署ng2应用程序

时间:2016-11-09 16:36:33

标签: javascript angular angular-cli

我永远不会理解ng build命令之后的内容。我的意思是,你如何在普通服务器上实际加载你构建的应用程序并访问它?到目前为止,我只找到了关于ng serveng build的主题,并说ng build完成之后。但事实并非如此。

如果我尝试构建然后导航到该文件夹​​,我在控制台中会收到很多关于未找到文件等的错误...更不用说有关不匹配路由的错误等等。

事实是,使用ng serve构建之前的应用程序就像魅力一样,但我不能去客户端说: “嗯,你必须使用ng服务”。

开玩笑说,如何在不使用GitHub页面和其他主机的情况下实际提供我构建的应用程序,而是使用我自己的服务器?

我发誓我在这个主题上搜索了很多,但我从来没有找到一个“稳定”的解决方案。

感谢任何可能的提示。我吓坏了这件事。

2 个答案:

答案 0 :(得分:3)

由于html中有新的<base href="/">属性,应用程序会在相应的根文件夹中查找您的资源。

因此,请尝试删除并运行,以便它可以在运行时加载base href

您可以使用以下代码使其正常工作

import {APP_BASE_HREF} from '@angular/common';
{provide: APP_BASE_HREF, useValue : '/' }

或使用javascript

document.write('<base href="' + document.location + '" />');

答案 1 :(得分:1)

如果您使用Angular CLI:ng build 导航到您的app文件夹/ dist

enter image description here

如果您想在PC上轻松运行它,只需下载USB Web服务器并将文件复制到根文件夹并运行服务器,您可以通过USB或客户端PC将其移植到客户端。

在服务器上运行应用程序:从dist文件夹+所有资产(bootstrap.css或图像文件夹或字体文件夹)复制所有内容

enter image description here

http://162.244.83.64/

===========================================

如果您尝试从本地PC运行该应用程序,请记住该应用程序正在根文件夹中查找您的资产(C:/,D:/)。

打开Index.html文件并编辑指向正确的路径,您无需在服务器或托管上执行此操作。