小编kin*_*rds的帖子

如何使用 service-worker + angular 修复“Uncaught (in promise) bad-precaching-response”错误

使用 jhipster-6.2 生成的项目,我在将 Spring + Angular 应用程序转换为渐进式 Web 应用程序 (PWA) 时遇到了问题。我的 service-worker 成功注册,但一旦我的应用程序部署到生产环境就不会提供离线功能。在我的控制台中,我得到一个bad-precaching-response, 似乎至少是一个 CSS 文件。对于本地部署,缓存工作。

为了成功注册我的 service-worker,我取消了 serviceWorker 相关代码的注释,index.html以便我有这个:

    <script>
        if ('serviceWorker' in navigator) {
            window.addEventListener('load', function() {
                navigator.serviceWorker.register('/service-worker.js')
                    .then(function () {
                        console.log('Service Worker Registered');
                    });
            });
        }
    </script>
Run Code Online (Sandbox Code Playgroud)

我通过 Workbox 插件成功生成了我的 service worker:

new WorkboxPlugin.GenerateSW({
            clientsClaim: true,
            skipWaiting: true
        })
Run Code Online (Sandbox Code Playgroud)

manifest.webapp我的 webapp 目录中有我的:

{
  "name": "<truncated>",
  "short_name": "<truncated>",
  "icons": [
        <truncated>
    ],
  "theme_color": "#000000",
  "background_color": "#e0e0e0",
  "start_url": ".",
  "display": "standalone",
  "orientation": "portrait"
} …
Run Code Online (Sandbox Code Playgroud)

jhipster webpack service-worker progressive-web-apps angular

5
推荐指数
1
解决办法
7798
查看次数