角度JS从URL中删除哈希不起作用



我试图摆脱看起来像 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>

最新更新