将HotTowel SPA部署到IIS时,不显示默认视图

时间:2014-01-07 19:07:14

标签: angularjs iis visual-studio-2013 breeze

我在VS 2013中使用Angular.js和HotTowel以及Breeze进行SPA项目。它在我的开发机器上工作正常但是当我在运行Windows Server 2012的Web服务器上将其部署到IIS 8.0时,它失败了。框架加载但不加载我的默认视图。它只是闪烁启动页面并显示一个空的浏览器。

我可以使用开发者工具浏览js代码,但它从未将我的默认视图加载到index.html。

使用IE中的开发人员工具,我在config.route.js中设置了断点,以完成确定将加载到SPA中的页面的过程。它似乎正在提出正确的页面。应该加载的页面称为request.html,因此我还在request.js中放置了一个断点,以查看它是否在加载时失败。它永远不会碰到这个断点。

我希望在向IIS部署SPA时,可能有人遇到过这些相同或类似的问题。

感谢您提供任何帮助。与此同时,我会继续寻找。

JG

2 个答案:

答案 0 :(得分:7)

终于成功了!正如评论中所述,我发现index.html中存在一些路径问题。我设法通过从shell.html的data-ng-include中删除前导'\'来解决问题。

当时:

<div data-ng-include="'/app/layout/shell.html'"></div>

现在:

<div data-ng-include="'app/layout/shell.html'"></div>

这使代码能够找到shell.html的正确目录级别。我担心这会破坏开发环境的代码,但它运行正常。

然后我发现我需要修复ccWidgetHeader函数中的directives.js文件中的类似路径。必须修改templateUrl。

当时:

/app/layout/widgetheader.html

现在:

app/layout/widgetheader.html

最后,我必须修改style.css以修复标题中徽标图像的路径。

当时:

.navbar .brand {
background: url(/content/images/fcma-biostar.png) no-repeat left center !important;
margin-left: -6px;
padding: 35px 50px;

}

现在:

.navbar .brand {
background: url(images/fcma-biostar.png) no-repeat left center !important;
margin-left: -6px;
padding: 35px 50px;

}

非常感谢! PW Kad和fops在这个问题上的讨论!

答案 1 :(得分:-1)

只是一个猜测,当然一个空白的屏幕可能是由于这里提到的更多原因造成的。 在我的情况下,我不得不关闭BundleConfig.cs代码中的缩小:

  BundleTable.EnableOptimizations = false;

(考虑这是一种解决方法。要修复它,一定要尝试检查角度代码的依赖注入部分)