Django - ServiceWorker, Uncaught (in promise) TypeError: Не удалось выполнить 'addAll' на 'Cache': Запрос не выполнен
Я хочу использовать ServiceWorker из javascript для кэширования HTML файла для автономного просмотра. Но проблема в том, что у меня django приложение. и я не знаю, как я могу указать файлы шаблонов в service-worker.js.
Я указал URL для service-worker.js в моем urls.py следующим образом -
path('service-worker.js', (TemplateView.as_view(template_name="menu/service-worker.js", content_type='application/javascript', )), name='service-worker.js')
это мой файл шаблона index.html -
<script>
if('serviceWorker' in navigator) {
let registration;
const registerServiceWorker = async () => {
registration = await navigator.serviceWorker.register("{% url 'service-worker.js' %}");
};
registerServiceWorker();
}
</script>
все работает отлично до сих пор.
это мой сервис-worker.js
const cacheName = 'my-cache';
const filesToCache = [
"/index.html",
];
self.addEventListener('activate', e => self.clients.claim());
self.addEventListener('install', e => {
e.waitUntil(
caches.open(cacheName)
.then(cache => cache.addAll(filesToCache))
);
});
self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request)
.then(response => response ? response : fetch(e.request))
)
});
Я получаю эту ошибку Uncaught (in promise) TypeError: Failed to execute 'addAll' on 'Cache': Request failed
и я знаю, что это потому, что index.html
файл не найден и возвращает 404 ошибку. но я понятия не имею, как я должен указать файл шаблона здесь. может кто-нибудь может помочь мне, как я должен импортировать файлы шаблонов в service-worker. или у меня может быть какая-то совершенно другая проблема. Спасибо!