AngularJS 和 web.config 重定向冲突
AngularJS and web.config Redirect conflicts
我的 web.config 中有这样的规则:
<rule name="netball.html" stopProcessing="true">
<match url="netball.html" />
<action type="Redirect" url="/netball" redirectType="Permanent" />
</rule>
但我在 angular 设置中有一条路线如下:
.state('netball', {
url: '/netball',
templateUrl: '/assets/tpl/sports/netball.html',
controller: 'SportsController',
controllerAs: 'controller',
data: {
pageTitle: 'Netball'
}
})
出于某种原因,重定向规则干扰了我的路线。如果我删除该规则,投球视图将正常工作。如果我添加它,根本不起作用(显示索引页面,但 ui- 视图是空的,就像找不到模板一样。
正因如此,我决定将templateUrl改为
templateUrl: '/assets/tpl/sports/test.html',
那行得通。因此,angularJS 及其显示视图的方式发生了变化。有什么我可以做的(除了将我的所有视图重命名为重定向规则无法匹配的内容之外)来阻止这种情况发生吗?
你想想也有道理。您的 angular 应用在尝试加载路由模板时正在为 /assets/tpl/sports/netball.html 发出 HTTP GET 请求。但是 IIS 说 "when a request with "netball.html" 进来,将它重定向到 "/netball"。
我建议您采用模板的命名约定,例如"netballTemplate.html",这样就不会发生任何冲突。
我的 web.config 中有这样的规则:
<rule name="netball.html" stopProcessing="true">
<match url="netball.html" />
<action type="Redirect" url="/netball" redirectType="Permanent" />
</rule>
但我在 angular 设置中有一条路线如下:
.state('netball', {
url: '/netball',
templateUrl: '/assets/tpl/sports/netball.html',
controller: 'SportsController',
controllerAs: 'controller',
data: {
pageTitle: 'Netball'
}
})
出于某种原因,重定向规则干扰了我的路线。如果我删除该规则,投球视图将正常工作。如果我添加它,根本不起作用(显示索引页面,但 ui- 视图是空的,就像找不到模板一样。
正因如此,我决定将templateUrl改为
templateUrl: '/assets/tpl/sports/test.html',
那行得通。因此,angularJS 及其显示视图的方式发生了变化。有什么我可以做的(除了将我的所有视图重命名为重定向规则无法匹配的内容之外)来阻止这种情况发生吗?
你想想也有道理。您的 angular 应用在尝试加载路由模板时正在为 /assets/tpl/sports/netball.html 发出 HTTP GET 请求。但是 IIS 说 "when a request with "netball.html" 进来,将它重定向到 "/netball"。
我建议您采用模板的命名约定,例如"netballTemplate.html",这样就不会发生任何冲突。