1

sw-precacheを使用して CDNJS からアセットをキャッシュし、オフラインで使用する Service Worker をセットアップしようとしています。残念ながら、これは機能していないようです。これが私がこれまでに持っているものです:

いずれかのスクリプトが にロードされる前index.html:

<script type='text/javascript'>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/js/service_worker.js')
      .then(function() {
        console.log("Service Worker Registered")
      })
  }
</script>

Service Worker を生成するために使用している Gulp タスクは次のとおりです。

const config = require('../config')
const gulp = require('gulp')
const swPrecache = require('sw-precache')

gulp.task('serviceWorker', (callback) => {

  swPrecache.write(config.build.serviceWorker, {
    runtimeCaching: [
      {
        urlPattern: /^https:\/\/cdnjs\.cloudflare\.com/,
        handler: 'networkFirst'
      }
    ]
  }, callback)
})

アプリを実行するService Worker Registeredと、コンソールにログが記録されます。ただし、wifi を切断すると、アプリはスクリプトの読み込みに失敗します。私は何を間違っていますか?

エラー

4

2 に答える 2