qiankun icon indicating copy to clipboard operation
qiankun copied to clipboard

当子应用的cdn中有相对地址,主应用加载的时候会出现404

Open huangbaihei opened this issue 1 year ago • 6 comments

乾坤是不支持子应用有cdn资源吗?比如用script标签引入的外部库,当这些库内部有相对路径时,资源加载都拼上主应用链接了,全部404

huangbaihei avatar Apr 02 '23 14:04 huangbaihei

遇到同样的问题了。主要是在mount中使用了import('./bootstrap'),然后创建的script的scr全是主应用的域名

961998264 avatar Apr 03 '23 09:04 961998264

我也遇到这个问题,我的应用打包后,静态资源都发布在cdn上,但是主应用访问子应用时,cdn的地址都被篡改了,请问有没有办法解决这个问题?

VilianLee avatar Apr 14 '23 08:04 VilianLee

可以试试 ${window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__}<your-path>/bootstrap

遇到同样的问题了。主要是在mount中使用了import('./bootstrap'),然后创建的script的scr全是主应用的域名

jk4235 avatar May 06 '23 03:05 jk4235

可以试试 ${window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__}<your-path>/bootstrap

遇到同样的问题了。主要是在mount中使用了import('./bootstrap'),然后创建的script的scr全是主应用的域名

我是在webpack打包的时候把publicPath设置为cdn地址,主包没有问题,是走cdn请求的,但是所有懒加载的文件都被劫持到子应用入口的域名了

VilianLee avatar Jun 08 '23 12:06 VilianLee

我也遇到这个问题,并且解决了,方案是在bootstrap函数中处理一下cdn的逻辑 export async function bootstrap() { return new Promise((resolve, reject) => { const script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/echarts.min.js'; script.onload = resolve; script.onerror = reject; document.head.appendChild(script); }); }

ouqin-live avatar Mar 21 '24 08:03 ouqin-live

我也遇到这个问题,我的应用打包后,静态资源都发布在cdn上,但是主应用访问子应用时,cdn的地址都被篡改了,请问有没有办法解决这个问题?

qiankun: { slave: { shouldNotModifyRuntimePublicPath: true, }, }, runtimePublicPath: {}, headScripts: ['window.publicPath = "http://xxx.cdn.com/"'],

https://github.com/umijs/umi/blob/2c43662d7580ccab2da14ac90838e979c8d9485f/packages/plugins/src/qiankun/slave.ts#L177

QQ20240327-200032@2x

bingyang519 avatar Mar 27 '24 12:03 bingyang519