【发布时间】: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