IIS 虚拟目录与 MVC6 Angular 路由 1.4.5
IIS Virtual Directory with MVC6 Angular Routing 1.4.5
我有一个 MVC6/Angular 站点,该站点将有多个应用程序,但目前只有一个。完成后,示例将是 App1
和 App2
成为 .cshtml
页面,只有 div 和 data-ng-app
和 data-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>
对于 angular,我知道如果我在 IIS 中有一个虚拟目录,我需要将其包含在 _Layout.cshtml 的 header 部分中(实际上将其放在 _Layout 中将中断开发):
<base href="@Url.Content("~/")" />
我原来的 templateUrl 和 angular 开发中的 app1 链接是:
$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"
});
之后 none 我的其他链接有效:
<a data-ng-href="#/items"></a> navigates me to mysite.com/virtualDir/#/items
如何在 html 页面构建我的 hrefs?我尝试使用 ../#/items/
和 ..#/items
并将 ..
添加到另一个 templateUrl
但似乎没有任何效果。谢谢
所以看起来最简单的解决方案是如下定义路由和 href。我的问题是没有同时拥有这三种组合。我认为 angular 根据我定义的 ~/App/App1 定义了 angular 路由的根:
<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/">
我的网址:
data-ng-href="App/App1#/items"
我有一个 MVC6/Angular 站点,该站点将有多个应用程序,但目前只有一个。完成后,示例将是 App1
和 App2
成为 .cshtml
页面,只有 div 和 data-ng-app
和 data-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>
对于 angular,我知道如果我在 IIS 中有一个虚拟目录,我需要将其包含在 _Layout.cshtml 的 header 部分中(实际上将其放在 _Layout 中将中断开发):
<base href="@Url.Content("~/")" />
我原来的 templateUrl 和 angular 开发中的 app1 链接是:
$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"
});
之后 none 我的其他链接有效:
<a data-ng-href="#/items"></a> navigates me to mysite.com/virtualDir/#/items
如何在 html 页面构建我的 hrefs?我尝试使用 ../#/items/
和 ..#/items
并将 ..
添加到另一个 templateUrl
但似乎没有任何效果。谢谢
所以看起来最简单的解决方案是如下定义路由和 href。我的问题是没有同时拥有这三种组合。我认为 angular 根据我定义的 ~/App/App1 定义了 angular 路由的根:
<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/">
我的网址:
data-ng-href="App/App1#/items"