React+VitePWA配置Workbox:CSV文件NetworkFirst策略不生效求助
解决React + VitePWA中CSV文件的Workbox NetworkFirst策略配置问题
你的问题出在urlPattern的正则匹配上——当前配置的/data\/(.*?)/是用来匹配包含data/路径的URL,但你的示例CSV文件URL是https://testing.s3.eu-central-1.amazonaws.com/data.csv?x-id=GetObject,这个URL里没有data/路径,只有文件名带data,所以这条规则根本没生效,CSV文件自然还是用默认策略从磁盘缓存读取。
要让所有.csv后缀的文件都采用NetworkFirst策略,把urlPattern改成匹配.csv结尾的正则即可,同时兼容后面带查询参数的情况:
globPatterns: ['**/*.{js,css,html}', '**/*.{svg,png,jpg,gif}'], runtimeCaching: [ { urlPattern: /\.csv(\?.*)?$/, handler: 'NetworkFirst', options: { cacheName: 'csv-cache', // 建议改成更明确的缓存名称,方便后续调试区分 }, }, ],
如果需要更精准的匹配(比如只针对该S3存储桶下的CSV文件),可以把正则细化为:
urlPattern: /^https:\/\/testing\.s3\.eu-central-1\.amazonaws\.com\/.*\.csv(\?.*)?$/
修改后,所有符合规则的CSV文件都会优先从网络获取最新内容,网络不可用时才会使用缓存版本。
内容的提问来源于stack exchange,提问作者PrinceLoren
相关产品推荐
相关产品推荐

