【发布时间】:2019-07-18 09:56:42
【问题描述】:
我正在使用 Python Django 和 django-pwa 包构建一个简单的渐进式 Web 应用程序。我已经设置了所有内容,但离线功能不起作用。此时,服务工作者 (SW) 已安装,并且开发工具将应用程序识别为 PWA。但是当我在devtools->Application 中检查“离线”并重新加载网页时,会出现“无互联网连接”错误。
这是我的软件设置:
var staticCacheName = 'djangopwa-v1';
var filesToCache = [
'/',
'/x_offline/',
'/static/x_django_pwa/images/my_app_icon.jpg',
'/media/images/bfly1.2e16d0ba.fill-320x240.jpg',
];
// Cache on install
self.addEventListener("install", event => {
this.skipWaiting();
event.waitUntil(
caches.open(staticCacheName)
.then(cache => {
return cache.addAll(filesToCache);
})
)
});
// Clear cache on activate
self.addEventListener('activate', event => {
event.waitUntil(
caches.keys().then(cacheNames => {
return Promise.all(
cacheNames
.filter(cacheName => (cacheName.startsWith("djangopwa-v1")))
.filter(cacheName => (cacheName !== staticCacheName))
.map(cacheName => caches.delete(cacheName))
);
})
);
});
// Serve from Cache
self.addEventListener("fetch", event => {
event.respondWith(
caches.match(event.request)
.then(response => {
return response || fetch(event.request);
})
.catch(() => {
return caches.match('x_offline');
})
)
});
列出的设置与django-pwa repo 中的默认设置几乎相同 当我第一次加载页面时,我看到对 SW 中列出的 URL 也发出了请求,并且所有这些 URL 的状态均为 200。在缓存存储中,我看到缓存在 SW 中设置了路径。所以我不明白我做错了什么。
不确定此附加信息是否有用,但是:当我将 SW 设置为脱机并重新加载网页时,缓存存储空间为空。
【问题讨论】:
标签: django progressive-web-apps