2017-01-29 4 views
1

ngAnimate, ngMaterial 및 ng-image-gallery를 추가 할 때까지 내 앱의 모든 것이 제대로 작동했습니다. 이 모듈을 추가하는 것이 문제의 원인인지는 모르겠지만 문제가 발생하기 전에 다른 것을 변경하지 않았습니다. 다음 (나는 app.js에서 종속성을 제거하고 index.html을 한 후에도) 모든 URL이 인코딩 된 문자로 변환되어 이후각도 ngRoute가 URL을 인코딩 된 문자로 갑자기 변환합니다! #!/# % 2F

...

이처럼 보였다 전에 :

http://.../app/index.html#/workshops 

하지 그것의 다음과 같이 변환 :

http://.../app/index.html#!/#%2Fworkshops 

물론 찾을 수 없습니다. 내비게이션이 작동하지 않고 아무런 변화가 없습니다.

왜 지금 인코딩 된 URL입니까?! 심지어 단지 index.html을 실행 n은 웹 서버 나에게 다음 URL을 제공합니다

http://.../app/index.html#!/ 

사람이 같은 문제가 있었나요를? 왜 그렇게되는거야? 그리고 더 중요한 것은 어떻게 해결할 수 있을까요?! 미리 감사드립니다.

내 경로 설정 :

'use strict'; 

    angular.module('myApp').config(['$locationProvider', '$routeProvider', 
    function($locationProvider, $routeProvider) { 

    $routeProvider 
    .when('/', { 
     templateUrl : 'modules/start/views/start.html', 
     controller: 'StartController' 
    }) 

    .when('/galerie', { 
     templateUrl : 'modules/galerie/views/galerie.html', 
     controller: 'GalerieController' 
    }) 
    .when('/kontakt', { 
     templateUrl : 'modules/kontakt/views/kontakt.html', 
     controller: 'KontaktController' 
    }) 
    .when('/workshops', { 
     templateUrl : 'modules/workshops/views/workshops.html', 
     controller: 'WorkshopsController' 
    }) 
    ; 
    }]); 

그리고 여기 내비게이션의 경로를 전환하는 방법 :

   <div class="navbar navbar-top hidden-xs"> 
        <ul class="nav navbar-nav"> 
         <li> 
          <a href='#/'>Start</a> 
         </li>      
         <li> 
          <a href='#/workshops'>Workshops</a> 
         </li> 
         <li> 
          <a href='#/galerie'>Galerie</a> 
         </li> 
         <li> 
          <a href='#/kontakt'>Kontakt & Buchung</a> 
         </li> 
        </ul> 
       </div> 

이 스크립트가 포함되어 있습니다 방법입니다

 <script src="bower_components/angular/angular.js"></script> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <script src="https://use.fontawesome.com/936815fb51.js"></script> 
    <script src="app.js"></script>  
    <script src="modules/config/routes.js"></script> 
    <script src="modules/start/start.js"></script> 
    <script src="modules/start/controllers/StartController.js"></script> 
    ... 

추가 콘솔 아무것도 말하지 않는다. 아무런 문제없이 오류가 없습니다.

답변

2

어시스턴트, 1.58에서 1.61로 변경 한 각도 버전을 사용했기 때문에 간접적으로 종속성을 추가해야했습니다. 단지 해시 프리픽스가 '!'로 변경되었다는 것을 읽었습니다.

응답 질문에 대한 링크는 여기 다음에 그 질문에 대답하기위한 Arjan Einbu에

$locationProvider.hashPrefix(''); 

감사 : 는 Angular Route - Extra # in URL

경로 설정에 folowing 라인은 이전처럼 라우터 작동 할 수있게 링크. 그것은 내 하루를 구했다.

+0

이 어리석은 '!'뒤에 한 시간을 낭비했습니다. 고마워요! – ayushgp