0

有没有办法使用sw-precache, 来缓存您当前所在的 url 而无需在 中准确指定 url 字符串dynamicUrlToDependencies?当我提供特定的相对 url 时,我的页面会缓存/dynamic/url-circle,但如果我只提供/. 我假设发生这种情况是因为我的网址是http://localhost:3000/dynamic/url-circle,而不仅仅是http://localhost:3000/。我需要它适用于任何 url 字符串,因为我不知道dynamic/(例如/dynamic/url-triangle/dynamic/url-square)之后的确切 url。是否有任何抽象或字符串模式可用于dynamicUrlToDependencies?或者我可以使用其他解决方案吗?

前任:

    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
   };
4

1 回答 1

0

您可以使用runtimeCaching缓存您的页面。我做了这样的事情。

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

然后每个包含url-lot在其中的 url 都会被缓存。现在感觉有点明显,但这就是生活。

于 2018-11-28T21:48:41.277 回答