angular - Angular 9.x 应用程序无法在 IE11 中加载
问题描述
最近我们发现 Internet Explorer(IE10、IE11)不再加载我们的 Angular v9.x 应用程序。几个月前它正在引导和加载应用程序,并通过守卫将使用 IE10 或 IE11 的用户重定向到不受支持的视图,提供有关如何升级到常绿浏览器(Chrome、Edge、Firefox 等)的信息。
由于某种原因,最近它似乎并没有引导应用程序,而是您只是无休止地盯着<app-root>
标签之间的徽标。使用 Windows 10 的 IE11 没有错误,所以我没有什么要调试的。
当涉及到此类问题时,我已经解决了通常的嫌疑人(见下文),并且还查看了 stackoverflow 中的多个帖子,例如link和link,以及引用的link和link。我对没有错误感到困惑,好像 Angular 不存在,但我可以看到 JS 文件被拉下(runtime.js、polyfills.js、styles.js、scripts.js、vendor.js、和 main.js)。
- 填充物
import 'classlist.js';
import 'web-animations-js';
import 'core-js';
- 浏览器列表
> 0.5%
last 2 versions
Firefox ESR
not dead
IE 9-11 # For IE 9-11 support, remove 'not'.
- ES5 tsconfig
{
"extends": "./tsconfig.json",
"compilerOptions": {
"target": "es5"
},
"include": [
"src/**/*.d.ts"
]
}
- 运行快速检查:
npx es-check es5 './dist/**/*es5*.js' './dist/**/scripts.*.js' --verbose
- 在本地运行生产构建文件并获得相同的结果:
cd ./dist/PROJEC_NAME && npx local-web-server
这是我讨厌问的问题之一,特别是因为它无处不在,但我花了很长时间试图弄清楚为什么我们的应用程序停止在 IE11 中运行,并且已经用尽了我的知识和研究。有没有人有什么建议?
解决方案
由于我们在技术上不支持 IE10 和 IE11,但试图阻止使用 IE10 和 IE11,我们决定采取更严格的方法并将内容拆分到位于其中的静态 HTML 页面,该页面/assets
使用脚本index.html
加载检测不支持的浏览器。这也意味着我们可以放弃我们的 polyfill。
推荐阅读
- c# - 在第一次记录水晶报告中显示总和
- c# - 如何在部署管道中正确配置数据库和集合?
- azure-service-fabric - Service Fabric 规模集上的存储空间不足
- c++ - 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- python - 如何获取稀疏矩阵数据数组的对角线元素的索引
- c# - 如何使用 C# 或 F# 在 Windows 窗体上更新位图?
- vue.js - 异步任务在 vuejs 视图中不是响应式的
- python - 上传从 cv2.imdecode() 返回的图像时面临问题
- ruby - 如何在 ruby 中一次访问多行
- bash - 将字符从 Windows 转义到 WSL