angular url正在添加不需要的字符

Res*_*had 4 angularjs angular-routing

我有一个项目,当你在本地工作时,URL工作正常

本地主机:9000/

URL会变成

HTTP://本地主机:9000 /#/

至于一些改变,我现在就去了

http:// localhost:9000 /#!/(带有感叹号)

此外,其他网址变得奇怪.如果我尝试点击一个链接,例如,转到仪表板.它不需要我.相反,它使URL像

/#!/#%2Fdashboard

之后没有任何反应.我做错了什么,我怎么可能解决这个问题?我不能显示任何代码,因为我不知道我哪里出错了.我按照以下教程,然后发生了问题.也许错误就在那里?

教程链接

我添加了我的.config来设置路由.

  .config(function ($routeProvider, $httpProvider) {
$routeProvider
  .when('/', {
    templateUrl: 'views/main.html',
    controller: 'MainCtrl',
    controllerAs: 'vm',
    activetab: 'main'
  })
  .when('/about', {
    templateUrl: 'views/about.html',
    controller: 'AboutCtrl',
    controllerAs: 'vm',
    activetab: 'about'
  })
  .when('/faq', {
    templateUrl: 'views/faq.html',
    controller: 'FaqCtrl',
    controllerAs: 'vm',
    activetab: 'faq'
  })
  .when('/dashboard', {
    templateUrl: 'views/dashboard.html',
    controller: 'DashboardCtrl',
    controllerAs: 'vm',
    activetab: 'dashboard'
  })
  .when('/logout', {
    templateUrl: 'views/main.html',
    controller: 'LogoutCtrl',
    controllerAs: 'vm'
  })
  .otherwise({
    redirectTo: '/'
  });
  $httpProvider.interceptors.push(['$q', '$window', '$localStorage', function($q, $window, $localStorage) {
    return {
      'request': function (config) {
        config.headers = config.headers || {};
        if ($localStorage.globals) {
          config.headers.access_token = $localStorage.globals.currentUser.token;
        }
        return config;
      },
      'responseError': function(response) {
        switch(response.status) {
          case 403:
            //$window.location = '/'
            break;
          case 404:
            //$window.location = './404.html';
            break;
          case 500:
            $window.location = './500.html';
            break;
        }
        return $q.reject(response);
      }
    };
  }]);
Run Code Online (Sandbox Code Playgroud)

小智 9

这实际上不是一个bug.

请参阅commit-aa077e8

用于$ location hash-bang URL的默认哈希前缀已从空字符串('')更改为bang ('!').

如果您确实不想使用hash-prefix,则可以通过向应用程序添加配置块来恢复以前的行为:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);
Run Code Online (Sandbox Code Playgroud)