我在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
答案 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)
BundleTable.EnableOptimizations = false;
(考虑这是一种解决方法。要修复它,一定要尝试检查角度代码的依赖注入部分)