如何在URL中使用没有#的$ stateprovider?

时间:2016-01-08 06:47:03

标签: angularjs html5 angular-ui-router

如何在网址中使用$stateprovider而不使用#

如果我们使用$locationprovider.html5mode(true),那么第一次正确加载时,但刷新页面后状态未加载且显示错误。

我会解释你的情景。我们使用ASP.NET web api作为后端服务器,前端是纯粹的带有angular.JS的HTML应用程序。我们没有遇到后端服务器的任何问题。我们没有api电话的问题。我将用一个例子来解释:www.test.com/#/main/home使用$ state.go重定向到www.test.com/main/home并完美呈现视图。但是,如果我们刷新页面后重定向到www.test.com/main/home,我们会收到404错误。请帮忙

我正在寻找根据使用选择提供的URL。所以我需要为此消除#

2 个答案:

答案 0 :(得分:0)

html5mode(true)和页面重新加载的问题在于,在HTML 5模式下,浏览器会在触发页面重新加载时将完整的URL发送到服务器。如果服务器上不存在完整URL的资源,则会返回错误。 因此,要解决您的问题,您需要在服务器上添加规则,以便无论调用哪个URL,始终发送相同的.html文件。 然后$ stateprovider会相应地初始化客户端状态。

答案 1 :(得分:0)

相关问题