在angular2中部署之后路由不起作用

时间:2016-10-25 15:23:02

标签: angular typescript deployment angular2-routing

我创建了一个angular2 app&成功部署了它。

应用程序在花费一些时间加载后正确启动&然后我可以导航到不同的组件。

但是当我将URL中的直接地址设为:

www.sample.com/about

它说404错误。

即使我使用ng build --prod创建捆绑包,它也能正确创建dist文件夹&我只能使用链接导航到不同的组件。

但我也无法直接从本地系统的URL访问组件。

我正在使用http-server

是否需要任何额外配置才能使其正常工作?

2 个答案:

答案 0 :(得分:1)

通过实现HashLocationStrategy解决了这个问题,HashLocationStrategy将#添加到您的所有路由中。 您可以通过将HashLocationStrategy添加到AppModule提供程序来实现此目的。

providers: [{provide: LocationStrategy, useClass: HashLocationStrategy}],

并添加相应的导入

import { HashLocationStrategy, LocationStrategy } from '@angular/common';

这解决了你的问题。

答案 1 :(得分:0)

您使用Node作为部署服务器吗?或者您正在使用IIS或类似的服务器。

我最好的猜测是,当你从服务器运行时,它没有找到你在这个例子about中寻找的资源。您必须正确配置服务器上的路由。

如果使用IIS,如果需要提供未知资源,则必须使用URL重写或MVC路由来提供默认资源。

在本地使用ng serve或使用lite-server时,他们会处理这些未知路径。

希望这有帮助!!