繁体   English   中英

带有MVC6角路由1.4.5的IIS虚拟目录

[英]IIS Virtual Directory with MVC6 Angular Routing 1.4.5

我有一个MVC6 / Angular网站,该网站将有多个应用程序,但目前只有一个。 完成后,示例将为App1App2.cshtml页面,仅具有div并具有data-ng-appdata-ng-view属性:

mysite.come/virtualdir/App/App1:

<div class="row" data-ng-app="app-app1">
  <div data-ng-view></div>
</div>

mysite.come/virtualdir/App/App2

    <div class="row" data-ng-app="app-app2">
      <div data-ng-view></div>
    </div>

对于有角度的,我了解如果我在IIS中有虚拟目录,则需要在_Layout.cshtml的标头部分中添加(实际上将其放在_Layout中会破坏开发):

<base href="@Url.Content("~/")" />

我在开发中的app1的原始templateUrl和角度链接为:

  $routeProvider.when("/", {
    templateUrl: "/views/app1/index.html"
  }); 

  $routeProvider.when("/items", {
    controller: "receiveController",
    controllerAs: "vm",
    templateUrl: "/views/app1/receiveView.html"
  });

 // typical link in html page for app1
 <a data-ng-href="#/items"></a>

当我部署到IIS时,当用户导航到mysite.come/virtualdir/App/App1时,需要具有以下路由才能加载到索引页

   $routeProvider.when("/", {
        templateUrl: "../views/app1/index.html"
      }); 

之后,我的其他任何链接均无效:

<a data-ng-href="#/items"></a> navigates me to mysite.com/virtualDir/#/items

如何在html页面中构造hrefs? 我试着玩../#/items/..#/items并将..添加到另一个templateUrl但是似乎没有任何效果。 谢谢

因此,似乎最简单的解决方案是如下定义路由和href。 我的问题不是同时拥有所有这三个组合。 我以为我根据我定义的〜/ App / App1定义了角度路线的根源:

<div class="row" data-ng-app="app-app1">
  <div data-ng-view></div>
</div>

所以我需要在app.js中:

 $routeProvider.when("/", {
        templateUrl: "views/app1/index.html"
      })

@我的_Layout.cshtml的顶部

<base href="/app/">

我的href:

data-ng-href="App/App1#/items"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM