问题描述
我很难理解为什么我的 base href 似乎区分大小写.我有一个带有基本 href 的页面,并使用了 angularjs 路由.
I'm struggling to understand why my base href seems to be case sensitive. I have a page with a base href and utilizes angularjs routing.
html:
<html ng-app="app">
<head>
<base href="/Foo/"/>
</head>
<body>
<div>Foo</div>
<div ng-view></div>
</body>
</html>
js:
var module = angular.module('app', []);
module.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/Home/Page1', { templateUrl = 'partials/page1' })
.otherwise({ redirectTo: '' });
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
});
如果我导航到 http://www.example.com/Foo/,它是美好的.但是当我导航到 http://www.example.com/foo/ 我得到一个角度错误:
If I navigate to http://www.example.com/Foo/, it's fine. But when I navigate to http://www.example.com/foo/ I get an angular error:
Error: Invalid url "http://www.example.com/foo/", missing path prefix "/Foo" !
at Error (<anonymous>)
at Object.LocationUrl.$$parse (http://www.example.com/foo/Scripts/angular.js:4983:13)
at Object.LocationUrl (http://www.example.com/foo/Scripts/angular.js:5014:8)
at $LocationProvider.$get (http://www.example.com/foo/Scripts/angular.js:5387:21)
at Object.invoke (http://www.example.com/foo/Scripts/angular.js:2809:28)
at http://www.example.com/foo/Scripts/angular.js:2647:37
at getService (http://www.example.com/foo/Scripts/angular.js:2769:39)
at Object.invoke (http://www.example.com/foo/Scripts/angular.js:2787:13)
at $CompileProvider.directive (http://www.example.com/foo/Scripts/angular.js:3613:43)
at Array.forEach (native) angular.js:5582
如果有帮助/有所作为,则站点托管在 IIS 上并使用 MVC 4.
If it helps/makes a difference, site is hosted on IIS and using MVC 4.
推荐答案
您需要关闭 angularjs 路由提供程序的区分大小写.
You need to turn off case sensitivity of angularjs route provider.
请查看此功能的详细信息:添加caseInsensitiveMatch
url匹配选项
Please review the detail of this feature:add caseInsensitiveMatch
option for url matching
这篇关于AngularJS + Base Href 区分大小写?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!