Angular-构建后未处理的导航错误

Elk*_*kin 4 build angular2-routing angular

我通过以下命令用2条路线构建了一个简单的angular应用程序:

ng build --aot --prod --base-href ./
Run Code Online (Sandbox Code Playgroud)

然后我打开index.html位于dist文件夹中的文件,应用程序运行,但是路由不起作用,并且在控制台上收到以下警告:

在此处输入图片说明

希望能很好地解释我的问题。提前致谢。

ben*_*oam 6

使用 Angular 路由引擎将迫使您将应用程序托管在某些服务器(例如IISNodeJS等)中

一个没有路由的简单 angular 应用程序可以在不将其托管在服务器上的情况下运行。

来自Angular 文档

Angular 应用程序非常适合使用简单的静态 HTML 服务器。您不需要服务器端引擎来动态组合应用程序页面,因为 Angular 是在客户端完成的。

如果应用程序使用 Angular 路由器,您必须将服务器配置为在请求它没有的文件时返回应用程序的主机页面 (index.html)。


小智 5

如果您使用哈希路由并按如下方式在index.html中定义基本href,则可以进行角路由。

<base href="#">
Run Code Online (Sandbox Code Playgroud)


Kim*_*m T 5

就我而言,我会得到:

未处理的导航错误:main.af3eff424835a3d5642f.js:1

因为我的基本网址设置为 https://

<base href="https://example.com" />
Run Code Online (Sandbox Code Playgroud)

但我是通过 http:// 加载该网站的

http://example.com
Run Code Online (Sandbox Code Playgroud)

解决方案是使用 https:// url 或更改基本 url 以允许通过 http 访问。