Я разрабатываю статический веб-сайт francoscarpa.com, используя одиннадцать. Этот веб-сайт использует сервисного работника для предоставления пользователю автономных возможностей. Все мои страницы отображаются с помощью этого шаблона:
<!DOCTYPE html>
<html>
<head>...</head>
<body>
...
<footer>...</footer>
{% include "swRegistration.html" %}
</body>
</html>
swRegistration.html
имеет следующее содержание:
<script>
if ("serviceWorker" in navigator) {
window.addEventListener("load", function () {
...
navigator.serviceWorker.register("/sw.js");
});
}
</script>
Это в основном позволяет мне использовать сервисного работника. Содержимое файла sw.js
таково:
const CACHE_NAME = "static12";
const STATIC_FILES = [ ... ]; // the resources to cache
self.addEventListener("install", function (event) { ... });
self.addEventListener("activate", function (event) { ... });
self.addEventListener("fetch", function (event) { ... });
Чего я не понимаю, так это почему сервис-воркер кеширует ресурсы, даже когда я отключаю строку {% include "swRegistration.html" %}
из сгенерированных файлов HTML:
<html>
<head>...</head>
<body>
...
<footer>...</footer>
<!-- {% include "swRegistration.html" %} -->
</body>
</html>
Если я закомментирую эту строку, правильно отображаемые HTML-страницы не отобразят ее, и когда я запускаю веб-сервер Eleventy с перезагрузкой в реальном времени во время разработки, строки нет:
но анализируя страницу с помощью Инспектора Firefox, я вижу, что кеш static12
все еще существует после каждого обновления страницы, даже после того, как я удалю его вручную: