在AngularJS 1.2中启用HTML 5模式

问题描述

如果您正在使用html5mode,则需要在服务器端进行更改,以index.html在任何URL请求上返回入口点(主应用程序页面)。然后,角度应用程序将解析URL并加载所需的页面

解决方法

我正在开发一个需要使用HTML 5模式的应用程序。由于我要迁移现有站点以使用AngularJS
1.2,因此我的URL中不能包含“#”标记。目前,我有以下内容:

angular.module('myApp',['ngRoute']).
  config(['$routeProvider','$locationProvider',function($routeProvider,$locationProvider) {
  $locationProvider.html5Mode(true);

  $routeProvider
    .when("/home",{templateUrl:'home.html',controller:'homeController'})
    // other routes are defined here..
    .otherwise({redirectTo: '/home'});
  }]);

不幸的是,当我访问“ http://myServer/home”时,启用html
5模式后,我的应用程序无法正常工作。我得到404。但是,当我访问http://myServer/它时,它可以工作。当我启用html5模式时,它就像深层链接不起作用。如果我注释掉“
$
locationProvider.html5mode(true);”这一行,则该站点将运行。但是,再次,由于我要迁移现有站点,因此我的URL中没有哈希标签。

我是否误解了html5mode(true)的工作方式?还是我做错了什么?

谢谢