AngularJS URL突然包含hashbang

时间:2016-12-16 15:03:17

标签: angularjs angular-routing

我上个月一直在使用angular v1.5.8angular-route v1.5.8以及node v 7.1.0nvm)开发AngularJS应用。突然之间,我的网址包含一个hashbang,并且路由不起作用,所以我无法更改页面。

而不是

http://localhost:8080/#/about当我第一次加载页面时,我得到http://localhost:8080/#!/about

当我尝试通过点击http://localhost:8080/#/chat更改为<a href="#/chat">时,我会http://127.0.0.1:3000/#!/about#%2Fchat

有谁知道为什么会发生这种情况或者我可能已经改变了什么导致这种新行为?我已经删除了node_modulesnpm install ed,但仍然会发生。

相关代码如下

的index.html

      <ul class="nav navbar-nav navbar-right">
        <li><a href="#/about">About</a></li>
        <li><a href="#/chat">Chat</a></li>
      </ul>

routes.js

angular.module('routes', ['ngRoute'])
.config(['$routeProvider', function($routeProvider){
  $routeProvider
    .when('/about', {
      templateUrl: 'views/about.html',
      controller: 'AboutController'
    })
    .when('/chat', {
      templateUrl: 'views/chat.html',
      controller: 'ChatController'
    })
    .otherwise({
      redirectTo: '/about'
    });
}]);

1 个答案:

答案 0 :(得分:0)

查看$ locationProvider,它的hashPrefix允许你指定你的斜杠前缀。如果您希望代码工作,请将$ locationProvider放入您的依赖项中并输入以下内容

$locationProvider.hashPrefix('')

config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
 $locationProvider.hashPrefix('')
  $routeProvider
    .when('/about', {
      templateUrl: 'views/about.html',
      controller: 'AboutController'
    })