我正在努力理解为什么我的基本href似乎区分大小写。我有一个带有基本href的页面,并利用了angularjs路由。
的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/时,出现一个角度错误:
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。
您需要关闭angularjs路由提供程序的区分大小写。
请查看此功能的详细信息: 添加caseInsensitiveMatch网址匹配选项
caseInsensitiveMatch