我在Angle 6上有多个应用程序。每个应用程序都在不同的端口号(4200、4201等)上运行于开发时间。每个应用程序都有自己的后端(8080、8081等)。示例:带有角度端口4200和api端口8080的“ App0”和带有角度端口4201和api 8081的“ App1”。
App0可以在proxy.conf.js的帮助下查询端口8080和8081以及App1。
这里是问题:我可以使用它来提供正确的角度应用程序吗?这个想法是使用proxy.conf.js服务正确的前端。例如,我只有一个在App0中实现的“ / home”路由。表示如果我调用localhost:4201 / home,则应将窗口位置更改为localhost:4200 / home并显示其内容。从技术上讲,App0中的路由器模块将我路由出去(通过canActivate Guard)并启动了App1。但是直到现在,我从Chrome收到了websocket错误。有想法吗?
来自App0的路由代码:
{
path: 'home',
component: LandingPageComponent,
},
从App1路由代码:
const routes: Routes = [{
path: 'home',
component: NotReallyAComponent,
data: {
externalUrl: '/'
},
canActivate: [ExternalPageGuard]
}]
而App1中的ExternalPageGuard:
@Injectable()
export class ExternalPageGuard implements CanActivate {
constructor(private router: Router) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> {
const externalUrl = route.data['externalUrl'] + state.url;
window.location.href = externalUrl;
return new Observable(() => {
});
}
}
App1中的proxy.conf.js:
const PROXY_CONFIG = [
{
context: [ "/api/**" ],
target: "http://localhost:8081",
secure: false,
logLevel: "debug"
},{
context: [ "/app0/api/**" ],
target: "http://localhost:8080",
secure: false,
logLevel: "debug"
},{
context: [
"!/app1/**"
],
target: "http://localhost:4200/",
secure: false,
logLevel: "debug"
}
]
module.exports = PROXY_CONFIG;
Chrome出现错误: chrome error