Сегодня по ману из сети сделал примерно такое: index.html Код (Javascript): <script> if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/sw.js').then(function(registration) { console.log('ServiceWorker registration successful with scope: ', registration.scope); }, function(err) { console.log('ServiceWorker registration failed: ', err); }); }); } </script> sw.js Код (Javascript): 'use strict'; importScripts('sw-toolbox.js'); toolbox.precache(["index.html", "css/main.css"]); toolbox.router.get('/img/icons/*', toolbox.cacheFirst); toolbox.router.get('/*', toolbox.networkFirst, { networkTimeoutSeconds: 1 }); оно работает, но есть нюансы: 1. Как сделать чтобы оффлайн открывался не только site.ru/index.html а и просто site.ru ? Яндекс.Браузер открывает офлайн и site.ru и site.ru/ а вот Хром только site.ru/index.html 2. Можно ли в массив toolbox.precache([]) сразу добавить всё, что есть в паблик рут? 3. Можно ли как-то добавить в кэш шрифты и библиотеки подгружаемые из CDN, например иконки: HTML: <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 4. Может чего другое лучше взять вместо sw-toolbox? )) Спасибо