2015-01-14 2 views
0
나는 다음과 같은 경로를 가지고

:AngularJS와와 HTML의 역사

app.config(function($routeProvider, $locationProvider) { 
    $routeProvider 
     // route for the home page 
     .when('/', { 
      controller : 'ApplicationController', 
      controllerAs : 'controller', 
      templateUrl : 'includes/home/home.html', 
     }) 
     // route for the about page 
     .when('/Enterprise', { 
      templateUrl : 'includes/enterprises/home_enterprise.html', 
     }) 
     .otherwise({redirectTo : '/'}); 

    // use the HTML5 History API 
    $locationProvider.html5Mode(true); 
}); 

내 링크 :

<base href="/admin2/" /> 

그리고 내 컨트롤러의 기능 : 나는이 내 헤더 라인을 가지고

<li><a ng-click="controller.MoveToCompanyHome(1)"><i class="fa fa-home">My Link</i></a></li> 

:

this.MoveToCompanyHome = function(id_company){ 
    $location.path('/Enterprise'); 
}; 

브라우저 기록을 사용하여 이전 페이지로 이동하려고 시도 할 때까지 제대로 작동합니다./Enterprise를로드하려고 시도하지만 작동하지 않습니다 (404). index.html (또는 /)을로드했지만 내 기록이 작동하는 방식을 이해할 수없는 경우에만 내 페이지가 작동한다는 것을 알고 있습니다. angularJs의 설명서 (https://docs.angularjs.org/guide/ $ 위치)를 읽으려고했지만 내 기록을 만들 수 없습니다.

+0

왜 이것이 작동하지 않는지 잘 모름 브라우저에서 다시 클릭하여 캐시에서로드해야합니다. 네트워크 탭에서/Enterprise를 요청한 다음 404를 반환하려고합니까? –

답변

2

/Enterprise이 서버에 없기 때문에 서버를 변경해야하므로 404가 표시됩니다. 이러한 변경 사항은 각도 앱을 호스팅하는 데 사용중인 기술에 따라 다릅니다.

Angular documentation에서 촬영 :이 모드를 사용

HTML5 모드

기본적으로 응용 프로그램 의 엔트리 포인트에 대한 모든 링크를 (다시 작성해야, 서버 측에서 URL 재 작성을 요구 예 : index.html).

+0

나는 (OVH에서) 상호화된 서버를 사용하는데, 구성하는 옵션이 많지 않다고 생각합니다. 다음과 같이 추가해야합니까? RewriteEngine On RewriteRule admin2 /admin2/index.html ? – user2088807

+0

.htaccess 파일에서 RewriteEngine RewriteRule을 사용하십시오. 이것 좀 봐 : http://www.josscrowcroft.com/2012/code/htaccess-for-html5-history-pushstate-url-routing/ –

+0

좋아, 지금은 고마워! – user2088807