umijs / qiankun

📦 🚀 Blazing fast, simple and complete solution for micro frontends.
https://qiankun.umijs.org
MIT License
15.77k stars 2.01k forks source link

关于qiankun对angular10 不能正确识别assets路径问题 #1624

Open zhuzhengwen1983 opened 3 years ago

zhuzhengwen1983 commented 3 years ago

我成功运行了乾坤angular9的官方实例,在这个基础上按angular9的实例也成功升级到angular10. 可是现在我的问题是:

因为实际项目我们会使用到i8n和一些图片. 代码如下: @ngx-translate export const createTranslateLoader = (http: HttpClient) => { return new TranslateHttpLoader(http, './assets/i18n/', '.json') };

我angular10独立运行的url为: http://localhost:7108/ (正确启动并且能获得所有assets目录下的资源)。 但是通过乾坤url为http://localhost:7099/ 去到我项目的微前端部分所有assets目录下的资源都是404 error。 Screenshot 2021-08-02 at 4 07 18 PM

我反复确认过按qiankun常见问题修改过,但问题依旧

Screenshot 2021-08-02 at 4 09 37 PM
gongshun commented 3 years ago

因为这个文件会发起一个请求,而这个请求的路径是相对路径,相对于当前页面的 url

zhuzhengwen1983 commented 3 years ago

因为这个文件会发起一个请求,而这个请求的路径是相对路径,相对于当前页面的 url

在qiankun中如何才能让这个相对路径正确?

gongshun commented 3 years ago

直接将路径写成完整路径就可以了,例如 new TranslateHttpLoader(http, 'https://github.com/assets/i18n/', '.json')

zhuzhengwen1983 commented 3 years ago

直接将路径写成完整路径就可以了,例如 new TranslateHttpLoader(http, 'https://github.com/assets/i18n/', '.json')

谢谢您的回复,我感觉问题不在这里,按您的建议,我尝试的结果是

Screenshot 2021-08-03 at 2 07 03 PM

我是不是需要借用file-loader 设置正确的publicPath,将assets文件打包到qiankun 7099的正确位置: Screenshot 2021-08-03 at 2 12 10 PM

ysc123 commented 2 years ago
a

lazy load 的js文件 加载pending 。但是单独打开的话是可以的

syficy commented 2 years ago

同样的问题,使用官方文档[https://qiankun.umijs.org/faq#after-the-micro-app-is-bundled-the-font-files-and-images-in-the-css-load-404]的方法后仍然无法正确识别,请问有好的解决方案吗

baokeyu123 commented 2 years ago

@zhuzhengwen1983 请问您最后是如何解决这个问题的。