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 を切断すると、アプリはスクリプトの読み込みに失敗します。私は何を間違っていますか?