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. или у меня может быть какая-то совершенно другая проблема. Спасибо!

Вернуться на верх