【问题标题】:Workbox Cache load is too big工作箱缓存负载太大
【发布时间】:2020-08-14 08:20:08
【问题描述】:

美好的一天.. 我的工作箱有问题。当我将策略设置为 NetworkFirst 时,每次单击页面时,它都会缓存至少 20MB 的文件。如果我单击同一页面,它会再次保存另一个缓存至少 20MB。与 StaleWhileRevalidate 相同,但更糟。如果我使用 CacheFirst,页面只缓存 1-2MB,但如果页面上有变化,它不会反映。如果我删除旧缓存,它现在会反映。

这是我的示例代码。希望你能帮我解决这个问题。

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js');

if (workbox) {
  const CACHE_PREFIX = 'v01';

  workbox.setConfig({
    clientsClaim: true,
    debug: true,
    skipWaiting: true
  });
  workbox.core.setLogLevel(workbox.core.LOG_LEVELS.warn);

  // Javascript and CSS rule
  workbox.routing.registerRoute(
    new RegExp('^.*(?:js|css)'),
    new workbox.strategies.NetworkFirst(
      { cacheName: `${CACHE_PREFIX}-asset` }
    ),
  );

  // Main rule - to cache everything,
  // i dont know why on this part, it wont cache CSS and JS
  // sw.js is also cached here
  workbox.routing.registerRoute(
    new RegExp('^.*(?:)'),
    new workbox.strategies.NetworkFirst(
      { cacheName: `${CACHE_PREFIX}-main` }
    ),
  );

} else {
  console.log(`Boo! Workbox didn't load ????`);
}

如果您对我有任何缓存提示,那将会很有帮助。

如果有帮助,我的 Symfony 项目结构:

root/sw.js and manifest.json
root/js/assetic files (ex 909ab227.js)
root/css/assetic files (ex 307a9c17.css)
root/../var/cache/dev/twig/a lot of folders (ex alphanumeric.php)

【问题讨论】:

    标签: symfony progressive-web-apps service-worker workbox


    【解决方案1】:

    美好的一天.. 让它在我的项目上工作。

    workbox.routing.registerRoute中添加了这些代码行

    new workbox.cacheableResponse.Plugin({
      statuses: [200]
    })
    

    我仍然不知道如何在 Symfony 上预缓存我的资产文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2019-11-24
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多