使用 webpack 的 import(‘./a’).then(A=>{})动态引入模块后遇到的问题
a.html 内嵌 b.html,代码如下
|
|
在 b.html 中,引入了 b.js,因为某种原因,a.html 也要引入 b.js,代码如下
|
|
结果 b.js 报错了,因为 b.js 使用了 window.staticConfig ,而这些 window.staticConfig 只在 b.html 上有。所以当执行时,b.js 就会报错
|
|
按照上面的写法,webpack 打包之后,最后生成的代码包为app.html
,app.js
,app.css
,2.4ea04156fe.js(b.js打包生成,被动态加载)
。将这些文件全部上传到服务器https://a.eago.com/
下,结果出现新的问题,因为我们使用https://a.eago.com/m/${id}
访问页面,而 webpack 动态引入的 publicPath 默认是""
,也就是说动态资源访问路径变成了https://a.eago.com/m/2.4ea04156fe.js
,出现 404 错误。
看一下 webpack 生成的代码:
|
|
解决办法:配置 publicPath,将文件上传到 cdn 访问,这样就只需要上传一份 app.html 到服务器,问题也得到解决