2016-11-09 20 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 + '" />');