我有一个带有控制器路由的角度应用程序,如下所示:

控制器/favorites.js

...
$stateProvider.state('app.favorites' {url: '/favorites'} ...);


index.html

...
<a ui-sref="app.favorites"> ...


当您单击<a>标记时,它将带您到适当的控制器,将页面路由到/favorites,一切正常。但是,当您刷新页面时,我得到了404(URL仍然是/favorites

知道为什么会这样吗?我正在使用http-server运行该应用程序,但是我也遇到了与python -mSimpleHTTPServer相同的问题

最佳答案

可以通过DOM的“历史” API更改页面位置而无需重新加载页面。您的后端不会自动知道或关心前端应用程序执行此操作的方式。

在Angular应用程序将浏览器导航到位置/favorites之后,刷新时,您将在位置/favorites击中后端。

您的后端是否对/favorites处的GET请求做出反应?也许应该!通常认为“最佳做法”是允许用户刷新而不使用404。

这可能是打破DRY(不要重复自己)的好时机;前端和后端都需要了解应用程序的路由。

关于javascript - Angular HTTP服务器页面刷新404,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29495464/

10-09 09:04