我有一个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中运行良好。 网址如下所示:
http://localhost:2352/#!/employee_list
并且所有内容都应该呈现。
但是在发布并运行完整的IIS(在本地)之后,相同的<a>
链接会提供如下的URL:
http://lerd/#/!/employee_list
注意&#39; /&#39;在&#39;#&#39;之间和&#39;!&#39;。
所以代替&#39; /#!/ employee_list&#39;我得到&#39; /#/!/ employee_list。
世界上究竟是什么造成了这种情况?还有其他人经历过这个吗?
我刚注意到,如果您在浏览器中手动输入正确的URL并点击输入,那么就会在那里添加额外的斜杠。所以它并不是真正的应用程序。它是浏览器,也许是IIS。
答案 0 :(得分:-1)
看来你需要'#'和'#!'在开发中。
所以我在设置NavBar的布局文件中执行了此操作:
<environment names="Development">
<li><a href="#!/employee_list">Employees</a></li>
<li><a href="#!/non_employees">Non Employees</a></li>
</environment>
<environment names="Staging,Production">
<li><a href="#/employee_list">Employees</a></li>
<li><a href="#/non_employees">Non Employees</a></li>
</environment>