我正试图摆脱看起来像http://example.com/#/album/0的网址,让它看起来更像http://example.com/album/0。
我有以下代码
(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之后包含angular-route.js,这样就不能解决问题了
答案 0 :(得分:1)
一眼就看起来它对我来说很合适,但你必须确保你的服务器设置为为任何路由提供http://example.com/index.html
,否则它会在引导你的角度应用程序之前尝试加载http://example.com/album/0/index.html
。启用html5后你看到了什么? 404找不到?控制台错误?
您可能还需要添加
index.html文件中<base href="/" />
内的<head></head>