在angular-ui-router中从路由中删除(#)hashbang后发出问题

时间:2015-05-23 20:18:54

标签: angularjs angular-ui-router

我在ui-route中删除了$locationProvider.html5Mode(true)的#(#)hashbangs。 并设置<base href="/public/">

当我尝试localhost:59940/public/#/home时,网址会被移除,网址会显示localhost:59940/public/home并获得主页视图。

但是当我尝试localhost:59940/public/home网址时。我收到404 Not Found错误。

尝试在浏览器中访问localhost:59940/public/home时帮助我获取主页视图。

2 个答案:

答案 0 :(得分:1)

问题是浏览器会在您的角度应用响应之前解析网址,实际上该路由的资源不存在。我使用的解决方案是使您的404路由返回index.html页面并使用ui-router处理真实的404个案例。但另一个想法是将所有客户端路由匹配到服务器上返回index.html的路由。

答案 1 :(得分:1)

要在角度中启用equals,您还需要更改一些端服务器。

除了你的静态资产和apis路径之外,所有其他路由只应服务于$locationProvider.html5Mode(你的主SPA页面)。

见下面的代码。 这是使用快速服务器在node.js中执行此操作的方法。

index.html