【发布时间】:2017-02-24 19:31:34
【问题描述】:
我正在开发一个 ASP.Net Core MVC/Angular JS 应用程序。
当我通过 VS 2015 和 IIS Express 进行开发和运行时,一切正常。
但是当我将文件发布到本地 IIS 并尝试通过那里运行时,它不起作用。主页运行良好,这实际上是 Angular 的最终路线:
$routeProvider.otherwise({
templateUrl: "/app/views/home.html"
});
我终于找到了发生的事情,但我不知道为什么?
在我的 ASP.Net Core MVC _Layout.cshtml 的 NavBar 中,我的 <a> 元素如下所示:
<a href="#!/employee_list">Employees</a>
<a href="#!/non_employees">Non Employees</a>
通过 VS 2015 和 IIS Express 在 Dev 中运行良好。 URL 如下所示:
http://localhost:2352/#!/employee_list
一切都按原样呈现。
但在通过完整的 IIS(即本地)发布和运行后,相同的 <a> 链接会给出这样的 URL:
http://lerd/#/!/employee_list
注意 '#' 和 '!' 之间的 '/'。
所以我得到的是 '/#/!/employee_list' 而不是 '/#!/employee_list'。
到底是什么原因造成的?有其他人经历过吗?
我刚刚注意到,如果您在浏览器中手动输入正确的 URL 并按 Enter 键,它会在其中粘贴额外的斜杠。所以它不是真正的应用程序。是浏览器,也可能是 IIS。
【问题讨论】:
标签: angularjs iis asp.net-core-mvc