我正在使用棱角2.1.1 . 我在我的应用程序中使用角度路由 . 它工作正常 . 当我点击菜单然后它正确路由 . 但问题是,当我在地址栏中键入URL而不是单击菜单时,我收到错误消息 .
我认为问题是,当我键入URL并按Enter键时,浏览器会向服务器发送请求 . 但路由配置在客户端 . 所以服务器响应时出现错误信息 .
在角度1中,URL中有一个#限制浏览器将请求发送到服务器 . 但在角度2中,URL中没有# .
我可以配置服务器,以便每个URL重定向到根URL . 但那不是解决方案 . 我无法为任何网址添加书签 .
我该如何解决问题?
2 回答
Angular2也有 # ,与 HashLocationStrategy 一起使用,似乎你正在使用 PathLocationStrategy .
如果使用PathLocationStrategy,请确保将服务器配置为提供请求的URL响应 .
您可以在应用中使用 HashLocationStrategy(#) ,如下所示,
进一步阅读: - https://angular.io/docs/ts/latest/guide/router.html寻找 HashLocationStrategy
您可以更改
locationStrategy
.默认设置是
PathLocationStrategy
,但您也可以使用HashLocationStrategy
:官方文件:https://angular.io/docs/ts/latest/guide/router.html#!#-hashlocationstrategy-