我已经在2个负载均衡的Web服务器上部署了我的角度应用程序。有时模板会加载,有时它们不会,因为网址错误 - 虚拟目录名称丢失。
查看模板请求的标头,我可以看到referer
http://mysite/folderInIIS/VirtualDirectoryName
当搜索模板时,使用的请求URL是
http://mysite/folderInIIS/Templates/myTemplate.html
失败
如果我将其编辑为:
http://mysite/folderInIIS/VirtualDirectoryName/Templates/myTemplate.html
我找到了我的模板。
所以,因为这是定期发生的,我认为其中一个Web服务器设置不正确,负载均衡器将决定你去哪一个以及是否会看到错误。
但是什么会导致模板网址在路径中没有虚拟目录名的情况下制作?
我的指令显示了templateUrl:
return {
restrict: 'E',
scope: {split : '&', collapseUp: '&', collapseDown: '&'},
replace: true,
transclude: true,
templateUrl: 'Templates/collapseTemplate.html',
controller: ['$scope', '$rootScope', '$timeout', function ($scope, $rootScope, $timeout) {
var panes = $scope.panes = [];
var splitterControl;
答案 0 :(得分:0)
您需要定义页面的<base href="..." /> in the
`部分,例如:
<base href="http://mysite/folderInIIS/VirtualDirectoryName" />
当然,如果您希望它既适用于本地测试环境(无虚拟目录)又适用于服务器(位于虚拟目录中),则需要动态计算基本href。
例如,在.NET MVC中,您可以使用:
<base href="@Url.Content("~")" />
希望它有所帮助。