【发布时间】:2014-10-24 05:01:04
【问题描述】:
这是我的问题。我在域的子文件夹中托管在 IIS 8 中的 Angular/WebAPI 项目。当我在文件夹名称后使用斜杠访问该站点时,一切正常。但是,如果我去掉尾部斜杠,当 Angular 为路由添加“#/”时,它就会中断。
Example: http://www.domain.com/folder/ becomes http://www.domain.com/folder/#/ <- OK
http://www.domain.com/folder becomes http://www.domain.com/folder#/ < - Breaks
我开始使用的 AngularJS 模板没有这个问题。我不明白是什么导致了这个问题,也不知道如何处理。
项目的其他信息 我正在使用 MVC Bundles 来最小化 javascript 和 css 我在同一个项目中有 WebAPI 控制器 我在同一个项目中使用 Microsoft OWIN 进行身份验证 除了这个初始 URL 问题之外,该项目运行正常。 我无法在 Visual Studio 中重现此问题,但 VS 不在文件夹中运行。 如果需要,我可以发布 Angular 路线。
【问题讨论】:
-
“中断”时发生了什么?
-
它加载初始 html 页面。但是在那个页面上,有角度指令中的 html 页面的相对链接。那些没有加载,可能是因为目录是“文件夹#/”而不是“文件夹/”。我需要弄清楚为什么要添加 #/ 而没有先在文件夹名称的末尾添加 /。
-
明确地说,尾随 / 由您的服务器处理。 #/ 由 angular 处理。从 Angular 的角度来看,您所描述的行为是正确的。您可能需要在 IIS 配置中设置某种类型的重写规则。我根本不了解 IIS,因此您需要深入研究它。这可能会有所帮助:ruslany.net/2009/04/10-url-rewriting-tips-and-tricks
-
嗨,卢克。我的回答解决了问题吗?如果没有,请告诉我。如果我的回答有帮助,您可以点赞并奖励答案吗?谢谢!