使用HTML5路由时,Angular 2的路由器是否被破坏?

这整个新的路线句法听起来很好是真实的,现在我想它实际上是。 我放弃了试图使其工作,在这里我注意到,甚至没有Angular 2页面的主要例子。 如果你打开实例,只要点击它就可以很酷,你可以看到url中的path被改变,但是它只是改变了string,path并不存在,如果你复制你的url并发送它对某人他们会得到以下错误:

{ "statusCode": 404, "error": "Not Found" } 

地狱,即使你只是刷新页面,你会得到同样的错误。

如果你想重现这个问题,打开这个URL:

https://angular.io/resources/live-examples/tutorial/ts/plnkr.html

点击实时预览右上angular的“在单独的窗口中启动预览”button,等待它加载页面,并且当您看到URL更改为如下所示:

http://run.plnkr.co/KMzM8hkaCyhlnf3b/dashboard

做一个F5刷新页面,你会得到错误。

这是一个错误,它应该工作的方式,或者他们甚至没有尝试? 他们是否已经开始了一个坏的路由器实施,或者我完全失去了如何努力使其工作? 请指教 !

我猜我最好使用hashtag实现。

实际上,由于浏览器中的实际地址正在更新(并且没有#/ hashbang方法),因此在上传应用程序时出现404错误是正常的。 默认情况下,在Angular2中使用HTML5历史logging进行重用。

如果你不想要404错误,你需要更新你的服务器来为每个pathpath提供index.html文件。

这个链接可以帮助你: 当我刷新我的网站,我得到了404。这是与Angular2和firebase 。

希望它能帮助你,Thierry

这是devise的(通过HTML5没有被Angular引入)。 切换到HashLocationStrategy或使用知道如何处理(redirect)这样的请求的服务器。 另见https://github.com/angular/angular/issues/4735