Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 区分大小写的url问题-Angular JS_Angularjs_Asp.net Mvc 4_Angular Ui Router - Fatal编程技术网

Angularjs 区分大小写的url问题-Angular JS

Angularjs 区分大小写的url问题-Angular JS,angularjs,asp.net-mvc-4,angular-ui-router,Angularjs,Asp.net Mvc 4,Angular Ui Router,我正在使用Angular JS(版本1.3.2)开发一个MVC4应用程序。我面临着一个奇怪的问题,URL是区分大小写的 例如,我有一个工作URL, http://www.abc.com/app2/products 但如果我将此URL更改为 http://www.abc.com/App2/products然后失败。我得到404页找不到错误 在这里,我将MVC项目的虚拟路径属性设置为“app2”。 另外,在基本HTML页面中,我有一个基本标记 <base href="/app2"/>

我正在使用Angular JS(版本1.3.2)开发一个MVC4应用程序。我面临着一个奇怪的问题,URL是区分大小写的

例如,我有一个工作URL, http://www.abc.com/app2/products

但如果我将此URL更改为 http://www.abc.com/App2/products然后失败。我得到404页找不到错误

在这里,我将MVC项目的虚拟路径属性设置为“app2”。 另外,在基本HTML页面中,我有一个基本标记

<base href="/app2"/>

如果我将此基本路径保持为小写,则一切正常,但当我将其更改为大写时,它就失败了

我在谷歌上搜索,发现很多人抱怨在使用Angular JS时出现了类似的问题

下面是我最有用的链接

但所有这些解决方案似乎都针对Angular JS的特定版本,在我的情况下不起作用(我修改了我的router.JS文件,但它不起作用)

有什么办法可以解决这个问题吗


AngularJS的最新版本是否解决了此问题?

AngularJS默认情况下区分大小写,您需要通过将
caseInsensitiveMatch
参数添加到
routeProvider
配置中来强制区分大小写

config(function ($routeProvider) {
    $routeProvider.
        when('/', { controller: 'TmpCtrl', templateUrl: '/app/home.html' }).
        when('/foo', { controller: 'TmpCtrl', templateUrl: '/app/foo.html', caseInsensitiveMatch: true }).  
        otherwise({ redirectTo: '/' });
});

AngularJS默认情况下是区分大小写的,您需要通过将
caseInsensitiveMatch
param添加到
routeProvider
config来强制区分大小写

config(function ($routeProvider) {
    $routeProvider.
        when('/', { controller: 'TmpCtrl', templateUrl: '/app/home.html' }).
        when('/foo', { controller: 'TmpCtrl', templateUrl: '/app/foo.html', caseInsensitiveMatch: true }).  
        otherwise({ redirectTo: '/' });
});

根据基本标签,您的angular应用程序位于
app2
目录中。角度路由仅管理此后url的任何部分。听起来你有服务器配置问题,不是angularIs有没有管理区分大小写的配置?我没有任何类似的东西…而且我也没有在服务器端做任何特殊的更改。这只是常规的默认设置…这就解释了,你需要配置服务器路由以允许在你的角度路由中使用HTML5模式。对此我真的很抱歉。但我不明白你的意思。你能帮我介绍一下我应该添加的代码和位置吗?如果你不理解其中的含义,请不要在angular routing中使用HTML5模式,或者阅读关于服务器端含义的文档。根据基本标记,angular应用程序位于
app2
目录中。角度路由仅管理此后url的任何部分。听起来你有服务器配置问题,不是angularIs有没有管理区分大小写的配置?我没有任何类似的东西…而且我也没有在服务器端做任何特殊的更改。这只是常规的默认设置…这就解释了,你需要配置服务器路由以允许在你的角度路由中使用HTML5模式。对此我真的很抱歉。但我不明白你的意思。你能帮我添加代码吗?如果你不理解其中的含义,不要在角度路由中使用HTML5模式,或者阅读关于服务器端含义的文档