我正在开发一个需要使用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中没有哈希标签。
http://myServer/home
http://myServer/
我是否误解了html5mode(true)的工作方式?还是我做错了什么?
谢谢
如果您正在使用html5mode,则需要在服务器端进行更改,以index.html在任何URL请求上返回入口点(主应用程序页面)。然后,角度应用程序将解析URL并加载所需的页面。
html5mode
index.html