bundle. js файл удаляется после того, как файл уже находится в кеше на pwa - PullRequest
1 голос
/ 01 марта 2020

Когда я кладу sh мой pwa в Heroku после некоторого «закрытия и повторного открытия» приложения, пакет. js удаляется из кеш-памяти внутри браузера. Поэтому, когда я открываю приложение, оно показывает только белый экран. Это происходит только на Android с chrome.

мой работник службы:

CACHENAME = '2020-02-29 23:48:15.963115'
const CACHEASSETS = [
'./index.html',
'./main.css',
'./bundle.js',
'./sw.js',
'./manifest.json',
'./images',
'./static.json',
'./images/icons',
'./images/icons/icon-384x384.png',
'./images/icons/icon-96x96.png',
'./images/icons/icon-144x144.png',
'./images/icons/icon-72x72.png',
'./images/icons/icon-192x192.png',
'./images/icons/icon-128x128.png',
'./images/icons/icon-152x152.png',
'./images/icons/icon-512x512.png',
 './',
'./home',]
self.addEventListener('install', (e) => {
    console.log('The service worker is being installed.');
    e.waitUntil(
      caches
      .open(CACHENAME)
      .then(cache => {
        console.log("Service Worker: Caching Files");
        cache.addAll(CACHEASSETS);
      })
      .then(() => self.skipWaiting())
      );
});


self.addEventListener('activate', (e) =>{
  console.log("Service Worker: Activated");
  e.waitUntil(
    caches.keys().then(cacheNames =>{
      return Promise.all(
        cacheNames.map(cache =>{
          if(cache !== CACHENAME){
            console.log("Service Worker: Clearing Old Cache",cache);
            return caches.delete(cache);
          }
        })
      )
    })
  )
})

self.addEventListener('fetch', (e) => {
  console.log("Service Worker: Fetching", e);
  if(e.request.clone().method === 'GET'){
    e.respondWith(
      caches.match(e.request).then((cachedResponse) =>{
        return cachedResponse;
      })
    )
  }
});

Вот приложение: https://mysterious-anchorage-81982.herokuapp.com/

Тестовая среда: Chrome 80.0.3987.117 на Android 9.

...