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

How to deploy ng2 app after ng-build

我一直不明白 ng build 命令后的内容。我的意思是,您实际上如何在普通服务器上加载构建的应用程序并访问它?到目前为止,我只找到了谈论 ng serveng build 的话题,说 ng build 之后你就完了。但事实并非如此。

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

事实是,使用 ng serve 构建之前的应用程序就像一个魅力,但我不能去客户那里说: "Well, you have to use ng serve".

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

我发誓我在这个主题上搜索了很多,但我从未找到 "stable" 解决方案。

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

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

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

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

http://162.244.83.64/

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

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

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

由于 html 中的新 <base href="/"> 属性,应用正在各自的根文件夹中查找您的资产。

所以尝试删除 运行 以便它可以工作并在 运行 时间内加载 base href

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

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

或使用 javascript

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