在Angular ng-view中清除URL哈希标签或从URL中移除哈希标签

3
我正在使用AngularJS构建一个网站,并使用angular-route库来查看网站的不同页面。我的网站工作正常,但当我移动到不同视图时,URL中会有一个哈希标签。为了删除哈希标签,我正在使用
$locationProvider.html5Mode(true);

但是在页面刷新时,这并不起作用。我的代码如下:- Index.html
<body data-ng-app="myapp" data-ng-controller="myctrl">
<div data-ng-include=" 'pages/menu.html'"></div>
<div ng-view class="view-animate"></div>
<div data-ng-include=" 'pages/footer.php' "></div>

<body>

app.js

    'use-strict'
var tc = angular.module('myapp', ['ngRoute']);

tc.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);

    $routeProvider
    .when('/home', {
        templateUrl: 'pages/home.html',
    })
    .when('/about', {
        templateUrl: 'pages/about.html',
    })
  .otherwise({
        redirectTo: '/home'
    })

}]);


你的 index.html 文件顶部是否有 <!doctype html> 标签? - user12121234
1
是的,我在index.html文件的顶部有<!DCTYPE html>。 - asb14690
你的 index.html 文件中是否已经包含了 angular-route.js? - user12121234
重新加载页面时,这个功能无法正常工作。例如:如果我在www.mysitename.com/about页面上重新加载此页面,我会收到“页面未找到”错误。 - asb14690
3个回答

1

使用:

<base href="/" />

把这个放在头标签中:-)

0
我建议您使用$stateProvider,而不是许多Angularjs专家建议的$routeProvider。$stateProvider对路由有更多的控制权。
请参见:

使用$stateProvider与$routeProvider


0
确保你的index.html文件顶部有<!doctype html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接