有没有一种方法可以使用sw-precache
来缓存当前正在使用的url,而无需在dynamicUrlToDependencies
中准确指定url字符串?当我提供特定的相对URL /dynamic/url-circle
时,我的页面会缓存,但如果我仅提供/
,则页面不会缓存。我假设发生这种情况是因为我的网址是http://localhost:3000/dynamic/url-circle,而不仅仅是http://localhost:3000/。我需要使用它来处理任何url字符串,因为我不知道dynamic/
之后的确切url(例如/dynamic/url-triangle
,/dynamic/url-square
)。 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' ],
},
这是我的Gruntfile中的sw-precache
设置:
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
};
答案 0 :(得分:0)
您可以使用runtimeCaching
来缓存页面。我做了这样的事情。
runtimeCaching: [
urlPattern: /\/url-lot\//,
handler: 'networkFirst',
},
]
,然后将缓存其中每个带有url-lot
的网址。
现在感觉有点明显,但这就是生活。