URL кэширования без явного объявления в dynamicUrlToDependencies с использованием sw-precache - PullRequest
0 голосов
/ 26 ноября 2018

Есть ли способ, используя sw-precache, кэшировать URL, на котором вы сейчас находитесь, без точного указания строки URL в dynamicUrlToDependencies?Моя страница кэшируется, когда я указываю конкретный относительный URL /dynamic/url-circle, но не если я задаю только /.Я предполагаю, что это происходит потому, что мой URL-адрес http://localhost:3000/dynamic/url-circle,, а не просто http://localhost:3000/. Мне нужно, чтобы это работало для любой строки URL-адреса, поскольку я не знаю точный URL-адрес после dynamic/ (например,/dynamic/url-triangle, /dynamic/url-square).Есть ли какие-либо абстракции или строковые шаблоны, которые можно использовать для dynamicUrlToDependencies?Или есть другое решение, которое я могу использовать?

ex:

    dynamicUrlToDependencies: {
       '/dynamic/url-circle': [ 'public/dist/css/dynamic.css', 'public/dist/js/dynamic.js' ],
       '/': [ 'public/dist/css/dynamic.css', 'public/dist/js/dynamic.js' ],
  },

Вот мои настройки sw-precache в моем Gruntfile:

   const rootDir = 'public'

   const config = {
       cacheId: version,
       handleFetch: true,
       logger: grunt.log.writeln,
       staticFileGlobs: [
         `${rootDir}/dist/js/*.{css,js}`,
         `${rootDir}/dist/css/*.{css,js}`,
         `${rootDir}/dist/offline.html`,
       ],
       dynamicUrlToDependencies: {
          '/dynamic/url-circle': [ 'public/dist/css/dynamic.css', 'public/dist/js/dynamic.js' ],
          '/': [ 'public/dist/css/dynamic.css', 'public/dist/js/dynamic.js' ],
       },
       stripPrefix: `${rootDir}/`,
       directoryIndex: 'dist/offline.html',
       navigateFallback: 'dist/offline.html',
       verbose: true,
       maximumFileSizeToCacheInBytes: 15 * 1024 * 1024, // 15MB
   };

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете использовать runtimeCaching для кэширования вашей страницы.Я сделал что-то вроде этого.

  runtimeCaching: [
      urlPattern: /\/url-lot\//,
      handler: 'networkFirst',
    },
  ]

, а затем каждый URL с url-lot в нем будет кэшироваться.Теперь кажется немного очевидным, но это жизнь.

...