html5mode不会删除hashbangs

时间:2015-07-05 13:18:45

标签: javascript angularjs html5 routes

我有一个gulp connect服务器正在运行,并希望从我在AngularJS项目中使用的routeProvider中删除hashbang。

我的app.js中有这个:

//Setting HTML5 Location Mode
companiesApp.config(['$locationProvider',
    function ($locationProvider) {
        $locationProvider.hashPrefix('!');
        $locationProvider.html5Mode(true);
    }
]);

我知道如果删除hashPrefix,它仍然可以与http://www.example.com/#example-uri一起使用但是如何完全摆脱它。是不是html5Mode(true)应该这样做?

2 个答案:

答案 0 :(得分:0)

是的,$locationProvider.html5Mode(true);应该这样做。

但是为了能够直接从浏览器访问页面,您应该将服务器配置为将请求重定向到索引页面,然后在内部调用部分。 {-3}}有关如何配置文档的angular-ui文档。

答案 1 :(得分:0)

  

如果您的方案可能有用,请尝试此操作

只添加$ locationProvider.hashPrefix('')这样的前缀来删除Bang前缀......

var app = angular.module('app', []);
app.config(['$routeProvider', '$locationProvider', 

    function ($routeProvider, $locationProvider)
    {
        $routeProvider.when('/', {
            templateUrl: "app1.html",
            controller: "App1Ctrl"
        })
        .when('/Program1', {
            templateUrl: "app2.html",
            controller: "App2Ctrl"
        });

        $locationProvider.hashPrefix("");
    }
]);
  

首先在依赖项中添加$ routeProvider,然后在hashPrefix的最后添加为null   删除tha bang前缀。