2016-11-09 62 views
1

我从来没有理解ng build命令后发生了什么。我的意思是,你怎么能真正加载你建立的应用程序在普通服务器上并访问它?到目前为止,我只找到关于ng serveng build的话题,说在ng build之后就完成了。但事实并非如此。如何在ng-build之后部署ng2应用程序

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

事实是,使用ng serve的作品就像一个魅力的构建之前的应用程序,但我不能去给客户,说: “好了,你必须使用NG服务”。

笑话,除了使用GitHub页面和其他主机,而是使用我自己的服务器,我该如何真正为我的内置应用程序提供服务?

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

感谢您的任何可能提示。我很害怕这件事。

回答

1

如果您使用的角度CLI:NG建立 浏览到您的应用程序文件夹/ DIST

enter image description here

如果你想你的电脑上运行,没有麻烦只是下载USB网络服务器和刚才复制的文件到根文件夹并运行服务器,您可以通过USB或客户端PC将其移植到客户端。

要在服务器上运行应用程序:复制一切从DIST文件夹+您的所有资产(bootstrap.css或图像文件夹或字体文件夹)

enter image description here

http://162.244.83.64/

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

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

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

+0

您好,感谢的答案,但我该怎么办,如果我有外部资产如SVG图标在他们自己的资产文件夹?当我在css中使用它们时,它无法找到它们......而且当访问dist文件夹时,我也遇到了路线无法匹敌的错误... – Caius

+0

如果我试图直接从我的电脑上运行它,我会得到路径错误,因为如果从c:/ something/something运行它,它正在搜索c:/ root中的文件 –

+0

只要我回家,我会尝试。我对这个基础href有疑问。我想我已经错过了 – Caius

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 + '" />');