Angular 在 IE 11 Intranet 上 - 以编程方式禁用兼容性视图

Angular on IE 11 intranet - programmatically disable Compatibility View

我是 运行 公司 intranet 上的一个 Angular 6 应用,来自 IE11。我的应用程序根据 tscnfig.json 编译为 ES5。我取消注释并安装了 polyfills.js 中的所有 IE 兼容行。我还在 <head> 标签下方添加了建议的元标签 <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

None 的预期行为是以编程方式禁用 IE 的默认兼容性视图设置。默认情况下,IE11 displays intranet sites in Compatibility View,它会破坏 Angular。我能够找到的唯一解决方案是让我们的每一位用户进入他们的 IE Compatibility View Settings 并取消选中此框:

这不太理想。还有什么我可以尝试的吗?在某些地方,我读到没有解决方法 - 在其他地方,我读到 IE=Edge 元标记是解决方案 - 但我发现元标记修复是假新闻......我可以告诉你。

我回去仔细查看了我的 index.html 文件。我所做的唯一更改是我们有一个被注释掉的重复元标记,以及我们的 Edge 元标记的属性和末尾的 /> 之间的一些额外间距。

我删除了所有这些,现在无论设置如何,该应用程序都可以正常工作。我试着尝试删除一些空格而不是其他空格,或者不删除注释代码与删除它 - 从应用程序工作到不工作的变化似乎是随机的,并没有真正加起来(服务器滞后?) -所以我无法查明原因。但我确实知道,一旦我删除了所有多余的间距和注释掉的元数据,它就会起作用——尽管我认为这无关紧要。

确保每次测试前清除缓存等,并让我的队友在他们的机器上试用。我希望这能解决问题,而且不会比这更随机。如果它再次中断,我将更新此线程,但目前它正在运行。感谢所有评论的人。