在html5mode(true)视图中没有加载角度js中的页面刷新

时间:2016-01-06 09:58:24

标签: angularjs

使用html5mode(true)时,在angular.js

页面刷新时未加载视图
    <base href="/">
    <div ng-app="directives" >
        <a href="/home">Home</a>
        <a href="/about">about</a>
        <a href="/contact">contact</a>
        <div ng-view></div>
    </div>
配置

中的

    directives.config(["$routeProvider","$locationProvider",function($routeProvider,$locationProvider){
    $routeProvider.when("/",{
        templateUrl:"directives/home.html"
    }).when("/home",{
        templateUrl:"directives/about.html"
    }).when("/about",{
        templateUrl:"directives/contact.html"
    }).when("/contact",{
        templateUrl:"directives/about.html"
    }).otherwise({
        redirectTo : "/"
    })
    $locationProvider.html5Mode(true).hashPrefix("!")
}])

http://127.0.0.1:58552/about

没有呈现正确的视图。

1 个答案:

答案 0 :(得分:0)

这是使用html5Mode(true)的缺点之一。

基本上,您的服务器无法找到该资源,因为该URL下没有该资源。该地址由Angular控制,此时,Angular尚未开始控制页面和URL以及其他内容。

我发现此问题的解决方案是在我的Apache服务器上设置URL重写(http://httpd.apache.org/docs/2.0/misc/rewriteguide.html)以清理URL并删除html5Mode(true)