在Single-spa Angular应用程序中从微型应用程序导航到其他微型应用程序时出现代理问题

问题描述

我正在使用单个spa-angular框架的微型前端方法我有一个在4200端口运行的根容器应用程序,还有2个微型应用程序,例如app1 @ 5201和app2 @ 4201端口。我没有遇到app2的任何问题,而且按照微型前端方法,app2可以完美运行。

在app1中,我有一个登录组件和仪表板组件。因此,当我点击app1时,它首先点击了登录组件(所需流程:它必须检查用户个人资料并进行身份验证,并根据结果将导航至仪表板组件)。为了在app1中检查此用户配置文件,我正在使用应用程序服务器(运行@ 8443端口)运行后端服务,并且在proxy config.json中配置了proxy,如下所示: { “ / app1 / *”:{ “ target”:“ http:// localhost:8443 /”, “安全”:错误 } } 在app1中启动npm期间,它将从.json包中提取此语句(--proxy-config proxy.conf.json),这就是我们在app1中为后端服务配置代理的方式。

现在,来到微型前端,当我从根容器中击到app1时,我得到的是访问被拒绝的图像,而不是仪表板。在内部,它击中了app1的登录组件,当我看到网络选项卡时,它击中了状态为200k的用户配置文件方法,但响应是整个html(无论我在根容器的index.html中给出了什么),会调用并渲染一个拒绝访问的图像。它不会触及后端服务器本身。

但是当我点击http:// localhost:5201 / app1 / app1 / app1-user-profile时,我能够在浏览器中看到所需的响应。因此,什么导致我在路由时无法获得app1的仪表板来自其他应用程序/ 4200端口?

有人可以在这方面指导我吗?我是否还需要在根容器和其他微型应用程序中配置代理服务器设置?单水疗中心可以帮助我完成此代理配置吗?

解决方法

我遇到了同样的问题,我的解决方案是在根应用程序中配置代理,在我的情况下,这是一个webpack开发配置。

这是因为根应用程序将所有未在“子应用”的路由组件中明确定义的路由重定向。

例如,这是我的带代理的webpack配置 https://github.com/milobella/application-web/blob/master/portal/webpack.dev.js

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...