From 085f46b753a3daf9a091baf5164b007d6c9b9d8c Mon Sep 17 00:00:00 2001 From: andrey-git Date: Thu, 2 Nov 2017 00:23:25 +0200 Subject: [PATCH] Make / and other fallback paths runtime cachable instead of pre-cached. --- gulp/tasks/gen-service-worker.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gulp/tasks/gen-service-worker.js b/gulp/tasks/gen-service-worker.js index ca1a7a1e52..f750dc82aa 100755 --- a/gulp/tasks/gen-service-worker.js +++ b/gulp/tasks/gen-service-worker.js @@ -26,13 +26,7 @@ const DEV = !!JSON.parse(process.env.BUILD_DEV || 'true'); var rootDir = 'hass_frontend'; var panelDir = path.resolve(rootDir, 'panels'); -var dynamicUrlToDependencies = { - '/': [ - rootDir + '/frontend.html', - rootDir + '/core.js', - rootDir + '/compatibility.js', - ], -}; +var dynamicUrlToDependencies = {}; var staticFingerprinted = [ 'frontend.html', @@ -76,10 +70,11 @@ gulp.task('gen-service-worker', () => { var url = '/static/panels/ha-panel-' + panel + '-' + hash + '.html'; dynamicUrlToDependencies[url] = [fpath]; }); + var fallbackList = '(?!(?:static|api|local|service_worker.js|manifest.json))'; var options = { navigateFallback: '/', - navigateFallbackWhitelist: [/^((?!(static|api|local|service_worker.js|manifest.json)).)*$/], + navigateFallbackWhitelist: [RegExp('^(?:' + fallbackList + '.)*$'], dynamicUrlToDependencies: dynamicUrlToDependencies, staticFileGlobs: [ rootDir + '/icons/favicon.ico', @@ -94,6 +89,9 @@ gulp.task('gen-service-worker', () => { runtimeCaching: [{ urlPattern: /\/static\/translations\//, handler: 'cacheFirst', + }, { + urlPattern: RegExp('^[^/]*/' + fallbackList + '.'), + handler: 'fastest', }], stripPrefix: 'hass_frontend', replacePrefix: 'static',