我试图摆脱看起来像 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,这会导致我的应用程序完全中断。知道为什么这对我不起作用吗?我也包括角度路由.js就在jquery和angular之后.js所以这不可能是问题
乍一看,它对我来说看起来没问题,但您必须确保您的服务器设置为为任何路由提供http://example.com/index.html
,否则它将尝试在引导您的 angular 应用程序之前加载http://example.com/album/0/index.html
。启用 html5 时会看到什么?404 未找到?控制台错误?
您可能还需要添加 <base href="/" />
索引.html文件中的<head></head>
内