我有一个MVC6 / Angular站点,它有多个应用程序,但现在只有一个。完成后,示例将为App1
,App2
为.cshtml
个网页,其中只包含data-ng-app
和data-ng-view
属性的div:
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>
对于angular,我理解如果我在IIS中有一个虚拟目录,我需要在_Layout.cshtml的标题部分中包含(实际上把它放在_Layout中会破坏开发):
<base href="@Url.Content("~/")" />
我在开发中的app1的原始templateUrl和angular链接是:
$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页面中构建我的href?我尝试使用../#/items/
和..#/items
并将..
添加到其他templateUrl
,但似乎没有任何效果。感谢
答案 0 :(得分:0)
所以似乎最简单的解决方案是定义路由和href,如下所示。我的问题是没有同时拥有所有这三种组合。我认为angular定义了基于我定义的〜/ 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/">
my href:
data-ng-href="App/App1#/items"