2016-12-16 1 views
0

나는 지난 달 동안 AngularJS 앱을 개발하여 angular v1.5.8angular-route v1.5.8node v 7.1.0 (nvm)으로 개발했습니다. 갑자기 내 URL에 hashbang이 포함되어있어 라우팅이 작동하지 않아 페이지를 변경할 수 없습니다. 처음 페이지를로드 할 때 AngularJS URL이 갑자기 hashbang을 포함합니다.

대신

http://localhost:8080/#/about

, 나는 http://localhost:8080/#!/about

을 얻고 나는 <a href="#/chat">를 클릭하여 http://localhost:8080/#/chat로 변경하려고 할 때 http://127.0.0.1:3000/#!/about#%2Fchat를 얻을.

왜 이런 일이 일어나는 지 또는 내가이 새로운 행동으로 바뀌 었는지 알 수 있습니까? node_modulesnpm install 에드를 다시 제거했지만 여전히 발생합니다.

관련 코드가 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

$ locationProvider에서
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' 
    }); 
}]); 

답변

0

모습, 그 hashPrefix 당신이 당신의 슬래시를 접두사로 원하는 것을 지정할 수 있습니다 . 코드를 작동 시키려면 $ locationProvider를 종속 항목에 넣고 다음을 입력하십시오.

$locationProvider.hashPrefix('') 

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