当前位置: 首页 > 知识库问答 >
问题:

角度服务工人MIME类型错误

谷梁子濯
2023-03-14

我正在尝试将服务人员添加到现有的angular(5.2,CLI 1.7.1)应用程序中。我做了我应该做的一切:

>

import { ServiceWorkerModule } from '@angular/service-worker';
imports: [
    ...
    ServiceWorkerModule.register('/ngsw-worker.js', 
        { enabled: environment.production }),
]

我甚至尝试将这段代码(我在某处找到了解决方案)添加到main。ts

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
    if ('serviceWorker' in navigator && environment.production) {
        navigator.serviceWorker.register('/ngsw-worker.js');
    }
}).catch(err => console.log(err));

但我有一个错误:

未捕获(promise中)DOMExc0019:注册ServiceWorker失败:脚本具有不受支持的MIME类型('text/html')。

错误:未捕获(promise中):安全错误:注册ServiceWorker失败:脚本具有不受支持的MIME类型(“text/html”)。在resolvePromise时(polyfills.3e9ea997ddae46e16c09.bundle.js:1)

在我自己的个人小应用程序中,我也做了同样的事情,它没有任何错误。我们遇到这个错误的应用程序非常庞大。有很多第三方库。我读到他们可能有问题。

你能帮我吗?

另外,我检查了我自己的应用程序以找出可能的差异,我没有发现,但我查看了devtools中的network选项卡,我注意到应该由service worker缓存的文件总是被加载的。请问这是正确的行为吗?

共有2个答案

章威
2023-03-14

在使用Angular8尝试了很多不同的东西之后,我最终将AngularDevkit从0.800升级到了0.800。2比0.803。2.

npm安装@angular devkit/build-angular@latest

然后我得到了一个错误:

错误:应找到ngsw配置。[PROJECT]文件夹中的json配置文件。在您的系统中提供一个或禁用服务工作者。json配置文件。

我通过改变来解决这个问题

“ngswConfigPath”:“ngsw config.json”“ngswConfigPath”:“src/ngsw config.json”

后来终于奏效了。

南宫阳焱
2023-03-14

这可能是由于ngsw工作人员失踪造成的。js文件。

很可能您正在使用HTML5 pushState样式的URL,并且您已将web服务器配置为返回服务器上物理上不存在的任何文件或文件夹的索引页(通常为index.html)。如果是ngsw工作人员。js在物理上不存在,web服务器会将请求重定向到ngsw worker。js来索引。html(因此MIME类型为“text/html”)。

ngsw工人。js文件通常在运行时复制到dist文件夹

ng build --prod
 类似资料:
  • 问题内容: 我使用的是创建反应的应用程序内有明确的服务器。 有一个预先配置的ServiceWorker可以缓存本地资产(https://github.com/facebook/create-react- app/blob/master/packages/react-scripts/template/README.md#making-a- progressive-web -app )。 尝试在服务器

  • 问题内容: 我已经看到angular.factory()和angular.service()都用于声明服务;但是,我在官方文档中找不到 任何地方。 两种方法有什么区别? 应该使用哪个(假设他们做不同的事情)? 问题答案: 直到我以这种方式对自己说: 服务 :您编写的 函数 将是 新的 -ed: Factory* :将 调用 您编写的 函数 (构造函数): * 您可以根据自己的意愿进行操作,但是有一

  • 问题内容: 我是一个有角的新手,正在构建一个应用程序,让我感到困惑的是,有几种方法定义了服务,我从此链接中了解了更多:如何定义服务, 然后似乎没有太大的区别定义服务的方式。 但我只是注意到我认为是不同的一个不同之处: 看到我从这里得到的这项服务http://jsfiddle.net/2by3X/5/ 如果我使用如下所示的“工厂”定义此服务,则一个功能不能调用该服务的其他功能。 我将在浏览器控制台中

  • MIME(多用途Internet邮件扩展)类型告诉浏览器如何处理某些类型的文件。 当文件发送到您网站访问者的浏览器时,它也会发送该文件的MIME类型。 MIME类型告诉浏览器文件类型以及如何将文件提供给用户。 例如,如果将.js文件发送到浏览器,则还会发送application/JavaScript MIME类型以告知浏览器.js文件是JavaScript文件,浏览器会相应地处理该文件。 大多数M

  • 这更像是一个服务人员的问题,尽管它可能更具体地针对Sapper。我真的不知道,因为我是第一个和服务人员打交道的人,我几乎没有使用过他们,而且经常觉得他们是个麻烦。 基本上,无论我做什么,我都无法让localhost:3000停止加载应用程序的旧副本。我以各种方式取消了服务工作人员的注册,包括尝试以编程方式取消注册。我清除了缓存,甚至清除了浏览器中的所有浏览数据。我的Sapper开发环境中的服务器未

  • 最初设计MIME(多用途Internet邮件扩展)媒体类型,以便电子邮件可以包括除纯文本之外的信息。 MIME媒体类型表示以下内容 - 消息的不同部分(如文本和附件)如何组合到消息中。 指定消息的每个部分的方式。 编码不同项目以进行传输的方式,以便即使设计为仅使用ASCII文本的软件也可以处理该消息。 现在MIME类型不只是用于电子邮件; 它们已经被Web服务器采用,作为告诉Web浏览器向他们发送