如何在使用服务器端优化包(例如Pagespeed模块)时修复Angular 8 Service Worker哈希不匹配错误

如何在使用服务器端优化包(例如Pagespeed模块)时修复Angular 8 Service Worker哈希不匹配错误,angular,nginx,mod-pagespeed,angular-service-worker,Angular,Nginx,Mod Pagespeed,Angular Service Worker,我得到了散列不匹配错误错误(散列不匹配(cacheBustedFetchFromNetwork),因为我实现了一个PageSpeed模块,该模块在创建@angular/service worker之后编辑文件(顺便问一下,这是一个很棒的包!)。有可能让这些以某种方式一起工作吗 禁用PageSpeed模块(以及在localhost上)后一切正常,但我想创建一个样板,其中包含多个最佳实践。我正在Ubuntu虚拟服务器上运行一个应用程序和反向代理()容器 我不确定什么样的代码在这里是有益的,但以下是我

我得到了散列不匹配错误
错误(散列不匹配(cacheBustedFetchFromNetwork)
,因为我实现了一个PageSpeed模块,该模块在创建@angular/service worker之后编辑文件(顺便问一下,这是一个很棒的包!)。有可能让这些以某种方式一起工作吗

禁用PageSpeed模块(以及在localhost上)后一切正常,但我想创建一个样板,其中包含多个最佳实践。我正在Ubuntu虚拟服务器上运行一个应用程序和反向代理()容器

我不确定什么样的代码在这里是有益的,但以下是我使用的回购协议:

我的应用程序repo的代码是 具有某些已编辑设置的反向代理的代码为

我希望能够有一些自动化的过程来创建服务人员,并以正确的顺序进行页面速度优化,但我还无法想象这是如何工作的

我收到的完整错误消息是:

Clients: 

=== Idle Task Queue ===
Last update tick: 5s342u
Last update run: 342u
Task queue:


Debug log:

[193u] Error(Hash mismatch (cacheBustedFetchFromNetwork): https://raw3.io/index.html: expected 7bd969964be1eec77b1db64c6ca8d6b26759f961, got 89dc3af453c7dacfa5518ff96d8a514c61cde1f1 (after cache busting), Error: Hash mismatch (cacheBustedFetchFromNetwork): https://raw3.io/index.html: expected 7bd969964be1eec77b1db64c6ca8d6b26759f961, got 89dc3af453c7dacfa5518ff96d8a514c61cde1f1 (after cache busting)
    at PrefetchAssetGroup.<anonymous> (https://raw3.io/ngsw-worker.js:699:35)
    at Generator.next (<anonymous>)
    at fulfilled (https://raw3.io/ngsw-worker.js:320:62)) Error occurred while updating to manifest 536ad256c5372555c8f73baed2eefa2280c723ae
客户端:
==空闲任务队列===
上次更新勾号:5s342u
上次更新运行:342u
任务队列:
调试日志:
[193u]错误(哈希不匹配(cacheBustedFetchFromNetwork):https://raw3.io/index.html: 应为7bd969964be1eec77b1db64c6ca8d6b26759f961,获得89DC3AF453C7DACFA55518FF96D8A514C61CDE1F1(缓存破坏后),错误:哈希不匹配(cacheBustedFetchFromNetwork): https://raw3.io/index.html: 预期7bd969964be1eec77b1db64c6ca8d6b26759f961,获得89DC3AF453C7DACFA55518FF96D8A514C61CDE1F1(缓存破坏后)
在预取资产组(https://raw3.io/ngsw-worker.js:699:35)
在Generator.next()处
至少(https://raw3.io/ngsw-worker.js:320:62))更新到清单536ad256c5372555c8f73baed2eefa2280c723ae时出错

我对PageSpeed不太熟悉,但从快速查看来看,它似乎在运行中进行了优化(并缓存它们以备将来使用)。
@angular/service worker
的当前实现不支持服务文件延迟构建工件的场景(将基于此生成
ngsw.json
manifest文件)。在thr Angular repo上跟踪此问题:

如果可以(afaict不是)脱机运行优化(例如,作为构建步骤),您可以通过运行以下命令重新生成
ngsw.json
清单文件(以考虑更新的文件内容):

node_modules/.bin/ngsw-config path/to/dist/directory path/to/ngsw-config.json [/base/href]