[英]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 serve
或lite-server
它们会处理这些未知路径。
希望这可以帮助!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.