我正在开发一个需要使用 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) 的工作原理?或者,我做错了什么?
谢谢