여기 내 꿀꺽 작업입니다 :기본 캐시 우선 전략을 sw-precache의 네트워크 첫 번째 전략으로 변경하는 방법은 무엇입니까?
gulp.task('service-worker', ['clean:sw'], function (cb) {
swPrecache.write(path.join(global.config.offlineRoot, 'sw.js'), {
staticFileGlobs: [
global.config.offlineRoot + '/offline/**/*.{js,html,css,png,jpg,jpeg,gif,svg,ttf,woff,woff2}',
global.config.offlineRoot + '/manifest.json'
],
dynamicUrlToDependencies: {
'/app-shell': ['lib/views/layouts/app-shell.hbs'],
'/': [
'lib/views/layouts/main-layout.hbs',
'lib/views/index.hbs'
]
},
runtimeCaching: [
{
// See https://github.com/GoogleChrome/sw-toolbox#methods
urlPattern: /^\/(?!login|admin)/,
handler: 'networkOnly'
}
],
stripPrefix: global.config.offlineRoot,
stripPrefixMulti: {
"node_modules/": 'scripts/'
},
navigateFallback: '/app-shell',
navigateFallbackWhitelist: [/^\/(?!login|admin)/],
cacheId: "nodebeats",
// importScripts: ['scripts/sw-toolbox/sw-toolbox.js'],
verbose: true,
maximumFileSizeToCacheInBytes: 3097152, //3mb
handleFetch: true//(global.config.env === 'prod')
})
.then(cb)
.catch(function() {
cb();
});
});
위의 설정에서 네트워크를 사용하여 로그인 및 관리 경로를 가져오고 인덱스 경로는 캐시에서 먼저 제공되지만 서버 측에서 내 페이지를 바인딩하기 때문에 먼저 네트워크로 설정해야합니다. 따라서 동적 데이터는 ctrl + f5가 아니라면 복제되지 않습니다.