具有HTML5模式的AngularJS URL不起作用

时间:2014-02-04 19:31:03

标签: html5 angularjs

为Visual Studio使用AngularJS SPA模板。我的app.js里面有:

$stateProvider
    .state('touranalysis', {
        url: '/touranalysis',
        templateUrl: '/views/touranalysis/index',
        controller: 'tourAnalysisCtrl'
    })
$locationProvider.html5Mode(true);

如果我在本地运行并点击我的链接进行touranalysis,它可以正常运行。这是导航栏中的链接。

<a href="~/touranalysis">Tour Analysis</a>

但是如果我在那个页面上,那是

http://localhost:8080/touranalysis 

然后点击F5,我找不到页面错误。我错过了什么?

1 个答案:

答案 0 :(得分:0)

我猜你的服务器上没有touranalysis页面。您正在获取页面未找到错误,因为当您单击F5时浏览器会请求touranalysis页面。加载页面后,角度路由将起作用。如果我是正确的,您的模板使用ASP.NET MVC。所以你可以添加这样的自定义路线:

routes.MapRoute(
       name: "touranalysis",
       url: "touranalysis",
       defaults: new { controller = "touranalysisController", action = "Index" });

这样ASP.NET MVC将加载touranalysisController的索引视图,该视图应该包含ng-view。之后Angularjs将加载/ views / touranalysis / index

我希望这会有所帮助。如果您有任何问题,请与我们联系。