2016-12-12 3 views
4

У меня был проект, в котором URL просто работал нормально при работе на местном уровне, перейдя вугловой URL добавляет нежелательные символы

локальный: 9000/

URL-адрес стал бы

http://localhost:9000/#/

Как o е некоторые изменения я сделал это в настоящее время идет

http://localhost:9000/#!/ (с восклицательным знаком)

Кроме того, другие URL-адреса становятся странно. если я попытаюсь щелкнуть ссылку, например, перейдите на панель инструментов. Меня это не привлекает. Вместо этого он делает URL как

/#!/#% 2Fdashboard

и ничего не происходит после этого. Что я сделал не так, и как я могу это решить? Я не могу показать код, потому что не знаю, где я ошибся. Я выполнил следующий учебник, и после этого возникла проблема. Возможно, ошибка есть?

tutorial link

Я добавил свой .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); 
     } 
    }; 
    }]); 
+0

кодекса вы можете показать, что отношение к этому является тот, что взять забота о настройке маршрутов и любой другой конфигурации углового маршрутизатора. – GillesC

+0

@ GillesC Я добавил код. Надеюсь, это поможет – Reshad

+0

Не может быть, что ng-href испортился? – Reshad

ответ

1

мне удалось решить эту проблему с помощью

$locationProvider.hashPrefix(''); 

Это кажется ошибка в 1.6.0 angularjs

0

Может подтвердить, что это будет ошибка в угловых 1.6.0 , Исправлена ​​моя собственная проблема, возвращаясь к Angular 1.5.9.

9

На самом деле это не ошибка.

См commit-aa077e8

Хэш-префикс по умолчанию используется для $ местоположения хэш-BANG URL-адресов изменился с пустой строкой ('') к челкой ('!').

Если вы на самом деле хотите не иметь хэш-префикс, то вы можете восстановить предыдущее поведение, добавив блок конфигурации приложения:

appModule.config(['$locationProvider', function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
}]);