【问题标题】:Workbox loading wrong dynamic import url工作箱加载错误的动态导入 url
【发布时间】:2021-06-12 15:52:39
【问题描述】:

我正在为 laravel/vuejs 应用程序使用工作箱和 babel 动态导入。我也在使用laravel-mixlaravel-mix-workbox 插件通过generateSW() 编译和生成服务工作者。

资产已根据 vue-router 中设置的条件正确加载到根 url https://myapp.test/ 中。像这样:https://myapp.test/assets/js/chunk1.js。 当我访问像https://myapp.test/post/post1 这样的子页面时,与页面相关的块也被正确加载。到目前为止一切顺利!

但是当我直接https://myapp.test/post/post1)访问帖子页面时,动态资产网址会附加到最新的斜杠上,即https://myapp.test/post/assets/js/chunk1.js,并且无法加载它们。 好像把根url设置为我们访问的第一页。

我尝试在 webpack 配置中添加 output.pathoutput.publicPath,但它们没有帮助。

相关包:

"devDependencies" {
   "workbox-webpack-plugin": "^6.0.2",
   "babel-plugin-syntax-dynamic-import": "^6.18.0",
   "laravel-mix": "^5.0.9",
   "laravel-mix-workbox": "^0.1.4",
}

生成SW配置:

mix.generateSW({
    mode: 'development',
    runtimeCaching: [
        {
            urlPattern: /\.(?:jpg|jpeg|svg|png|json)$/,
            handler: 'CacheFirst',
        },
        {
            urlPattern: /api($|\/?.*)/,
            handler: 'NetworkFirst'
        }
    ],
    exclude: [
        /(backend.css|backend.js)/
    ],
    include: [
        /\.(?:ttf|js|css|glb)$/,
        /(\/font.png)/
    ],
    skipWaiting: true,
});

感谢您的宝贵时间。

【问题讨论】:

    标签: javascript vue.js webpack laravel-mix workbox-webpack-plugin


    【解决方案1】:

    我终于通过在我的 html <head> 中添加 <base> tag 来修复它。原来这是工作箱确定基本 URL 的地方。

    <base href="https:://myapp.test/">
    

    我在 Laravel 中的任何情况:

    <base href="{{config('app.url')}}">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2017-12-11
      相关资源
      最近更新 更多