在IIS运行时,如何使Angular JS 1路由在ASP.NET MVC核心中起作用



我正在开发ASP.NET Core MVC/Angular JS应用程序。

当我开发和运行vs 2015和IIS Express时,一切都起作用。

但是,当我将文件发布到本地IIS并尝试穿过那里时,它无法正常工作。主页正常工作,这实际上是最终的角度,否则路线:

$routeProvider.otherwise({
        templateUrl: "/app/views/home.html"
    });

我终于追踪了发生的事情,但我不知道为什么?
在我的aSp.net核心mvc _layout.cshtml我的 <a>元素中,在我的navbar中

<a href="#!/employee_list">Employees</a>
<a href="#!/non_employees">Non Employees</a>

通过VS 2015和IIS Express在DEV中运行良好。URL看起来像这样:

http://localhost:2352/#!/employee_list

一切都应该呈现。

但是在发布并通过Full II(本地)运行后,相同的<a>链接给出了这样的URL:

http://lerd/#/!/employee_list

注意'/'#'和'!'之间的'/'。

所以而不是'/#!/lighteree_list'我得到'/#/!/lighteree_list。

世界上是什么?还有其他人经历过吗?


我只是注意到,如果您手动在浏览器中手动键入正确的URL并击中输入它会在其中插入额外的斜线。因此,这不是真正的应用程序。这是浏览器,也许是IIS。

好吧,似乎您需要'#'prod and'#!'在Dev。

所以我在设置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>

最新更新