我一直在寻找从AngularJS中的URL中删除#的方法,并找到了许多解决方案,这些解决方案指向我使用他们现在建议的方向在我的app.js中我有以下内容:
var app = angular.module('mainApp', ['ngRoute', "oc.lazyLoad"]);
app.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/home',
{
templateUrl: '/Templates/Home/home.html',
})
.when('/About',
{
templateUrl: '/Templates/About/About.html'
})
.when('/home/:page_number',
{
templateUrl: '/Templates/Params/params.html',
resolve: {
loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load('Templates/Params/paramsController.js');
}]
}
})
.otherwise('/home',
{
templateUrl: '/Templates/Home/home.html'
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
});
在SiteMaster.Html的头部里面我已经放置
<base href="/">
完全分解:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="Scripts/angular.min.js"></script>
<script src="Scripts/angular-route.min.js"></script>
<script src="Scripts/app.js"></script> <!-- Consists of Routing -->
<script src="Scripts/ocLazyLoad.js"></script>
<title>Angular Routing Tutorial</title>
<base href="/">
</head>
<body ng-app="mainApp">
<h1>sitemaster Template</h1>
<div ng-view></div>
</body>
</html>
然而,当我运行这个时,当我操纵URL为/关于我得到
时,我会被定向到/ homeHTTP错误404.0 - 未找到 您要查找的资源已被删除,名称已更改或暂时不可用。
同样适用于/ home / SomeValue
然而,当我删除
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
删除base href =&#34; /&#34;从我的SiteMaster.Html中,路线按预期工作?
有人可以向我解释为什么会发生这种行为吗?