繁体   English   中英

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

[英]routing doesnt work after deployment in angular2

我已经创建了angular2应用并成功部署了它。

应用程序需要一些时间才能加载,并且可以正确启动,然后我可以导航到其他组件。

但是当我将直接地址放在URL中时:

www.sample.com/about

它说404错误。

即使当我使用ng build --prod创建bundle时,它也可以正确创建dist文件夹,而且我仅可以使用链接导航到其他组件。

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

我正在使用http-server

是否需要任何其他配置才能使其正常运行?

通过实现HashLocationStrategy可以解决此问题,该方法将#添加到所有路由。 您可以通过将HashLocationStrategy添加到AppModule提供程序来实现。

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

并添加相应的导入

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

这解决了您的问题。

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

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

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

在本地,当您使用ng servelite-server它们会处理这些未知路径。

希望这可以帮助!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM