我正在使用工作簿&用于laravel/vuejs应用程序的babel动态导入。我还使用laravel-mix
和laravel-mix-workbox
插件通过generateSW()
编译和生成服务工作者。
根据vue路由器中设置的条件,将资产正确加载到根urlhttps://myapp.test/
中。像这样:CCD_ 5。当我访问像https://myapp.test/post/post1
这样的子页面时,与页面相关的块也会正确加载。到目前为止一切都很好!
但是,当我直接访问(https://myapp.test/post/post1
(的帖子页面时,动态资产URL会附加到最新的斜杠,即https://myapp.test/post/assets/js/chunk1.js
,并且无法加载它们。就好像根url被设置为我们访问的第一个页面一样。
我已经尝试添加output.path
&webpack配置中的output.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",
}
generateSW配置:
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,
});
谢谢你抽出时间。
我最终通过在我的html<head>
中添加一个<base>
标记来修复它。事实证明,这是工作簿确定基本URL的地方。
<base href="https:://myapp.test/">
任何在我的情况下在拉拉威尔:
<base href="{{config('app.url')}}">