2015-01-16 5 views
1

http://example.com/#/album/0과 같은 URL을 제거하려고 시도하고 있습니다. 더보기는 http://example.com/album/0입니다.Angular JS가 작동하지 않는 URL에서 해시를 제거합니다.

다음 코드를

(function() { 
var app = angular.module('chp', ['ngRoute', 'projectControllers']); 

app.config(['$routeProvider', '$locationProvider', 
    function($routeProvider, $locationProvider) { 
    $routeProvider. 
     when('/', { 
     templateUrl: 'partials/directory.html', 
     controller: 'ProjectsCtrl' 
     }). 
     when('/album/:id', { 
     templateUrl: 'partials/album.html', 
     controller: 'ProjectDetailCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 

     $locationProvider.html5Mode(true); 
    }]); 

var projectControllers = angular.module('projectControllers', []); 

projectControllers.controller('ProjectsCtrl', ['$scope', '$http', 
    function ($scope, $http) { 
    $scope.projects = albums; 
    $scope.filters = { }; 
    }]); 

projectControllers.controller('ProjectDetailCtrl', ['$scope', '$routeParams', '$sce', 
    function($scope, $routeParams, $sce) { 
    $scope.project = albums[$routeParams.id]; 
})(); 

을 가지고 있지만이 휴식 완전히 한 번 내가 같이 세 가지 장소에서 $ locationProvider에 추가 내 응용 프로그램을 일으키는 것입니다. 왜 이것이 나를 위해 일하지 않는지에 대한 어떤 생각? 또한 jquery 및 angular.js 바로 뒤에 angle-route.js를 포함하여 문제가되지 않도록

+1

왜 당신이 당신의 모든 컨트롤러에'$ locationProvider'를 주입 할 것이다 당신의 index.html 파일에 <head></head> 내부 <base href="/" />을 추가해야 할 수 있습니다? '$ locationProvider.html5Mode (true);'는'/ # /'을 제거해야하고, 다른 것은 필요 없습니다. –

답변

1

한눈에 알 수 있겠지만 서버가 http://example.com/index.html으로 설정되어 있는지 확인해야합니다. 어떤 경로라도 그렇지 않으면 각도 응용 프로그램을 부트 스트랩하기 전에 http://example.com/album/0/index.html을로드하려고 시도합니다. html5를 사용하면 무엇을 볼 수 있습니까? 404 찾을 수 없음? 콘솔 오류?

또한

+0

아니요 콘솔에 오류가없는 페이지가 표시됩니다. 전에 – user2994560

+0

과 같은 데이터가로드되지 않습니다. 그러면 Thor Jacobsen이 맞을 것입니다. 컨트롤러에 $ locationProvider를 삽입하려고합니까? 그렇다면'$ location'을 사용하고'$ locationProvider' 만 config에 저장하십시오. –

관련 문제