You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在Github Pages的Vite PWA中Workbox缓存条目出现双斜杠问题

解决Vite PWA在GitHub Pages上Workbox缓存双斜杠问题
  • 对齐Vite与Workbox的base路径配置
    GitHub Pages部署在子路径下,需确保vite-plugin-pwa的workbox配置与Vite的base参数一致,且避免重复斜杠。例如Vite的base设为/${repoName}/时,workbox的base可去掉尾部斜杠,防止拼接时出现双斜杠:

    import { VitePWA } from 'vite-plugin-pwa';
    
    export default {
      base: process.env.BASE_URL || '/',
      plugins: [
        VitePWA({
          workbox: {
            base: process.env.BASE_URL?.replace(/\/$/, '') || '/',
            // 其他Workbox配置
          }
        })
      ]
    };
    
  • 检查Workbox缓存策略的路径处理
    排查runtimeCaching或globPatterns配置,避免手动拼接路径时重复加斜杠。比如不要用${base}/${path}的写法,依赖Workbox自动拼接资源路径;若需自定义缓存键,可使用Workbox的路径规范化方法:

    import { normalizeURL } from 'workbox-core';
    
    // 缓存前规范化URL,消除双斜杠
    const cacheKey = normalizeURL(request.url);
    
  • 验证构建后的Service Worker内容
    构建完成后,打开生成的service-worker.js,检查precacheManifest中的资源路径是否存在双斜杠。若有,说明构建时路径拼接错误,需调整Vite或PWA插件的base配置。

  • 调整GitHub Actions的Build命令
    尝试移除base参数的尾部斜杠,修改为:

    - name: Production Build
      run: bun run build:prod -- --base=/${{ github.event.repository.name }}
    

    避免Vite的base尾部斜杠与Workbox的路径拼接叠加出双斜杠。

内容的提问来源于stack exchange,提问作者Adehad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:22:44