Angular - 无法加载模块脚本:

Posted

技术标签:

【中文标题】Angular - 无法加载模块脚本:【英文标题】:Angular - Failed to load module script: 【发布时间】:2020-01-11 23:29:59 【问题描述】:

我在生产中有 Angular 8 前端应用程序,它无法加载模块脚本:服务器以“text/html”的非 javascript MIME 类型响应。根据 HTML 规范对模块脚本强制执行严格的 MIME 类型检查。

此问题仅在生产构建中发生,但并非总是如此,有时只能重现。

main-es2015.fcc7123d15fd9c113b00.js:1

供应商-es2015.d8d7d81cc2b06ece8c91.js:1

我该如何解决?

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

你在使用 serviceWorker 吗? 如果是这样,您必须在 angular.json "serviceWorker": true 中添加您正在使用的配置。

【讨论】:

【参考方案2】:

我想分享我在我工作的组织中遇到的同样问题的经验。

我有一个 Angular 9 应用程序,当我部署到 Stage 环境时,我的控制台中出现三个错误,显示为“由于 Mime 类型而未加载模块”。这在所有其他环境中都运行良好,经过一番努力,发现网站下的文件无法访问。例如。当你部署一个 Angular 应用程序时,你会得到 index.html 文件和许多其他的 js 文件。该网站存在权限问题。该站点托管在 Rackspace 中,并且未将 FireWall 配置为可以访问该网站下的文件。

提供以下访问权限后,应用程序开始运行。

/资产* /*.css /*.js /*.ico /*.html

我看到的与您的问题的唯一区别是您提到它有时会起作用。

还有另一篇帖子Blocked because of a disallowed MIME type (“text/html”) : Angular 8 deployed on tomcat 9.0.30 fails to serve the assets尝试基于基本参考的解决方案,因为这些 js 文件未提供/加载

我希望这可能对某人有所帮助。

【讨论】:

以上是关于Angular - 无法加载模块脚本:的主要内容,如果未能解决你的问题,请参考以下文章

GCP App Engine / Angular - 无法加载模块脚本:服务器以“text/html”的非 JavaScript MIME 类型响应

Angular2 无法使用延迟模块加载的自定义重用策略

无法加载 Angular 生产构建 - 由于不允许的 MIME 类型(“text/html”),加载模块被阻止

无法加载模块脚本 - 在 index.html 中导入类

WSGI 脚本无法作为 Python 模块加载——500 内部服务器错误

由于不允许的 MIME 类型,无法加载模块脚本