角度通用SSR动态绝对基-母路径



嘿,我有基于此入门套件的应用程序

我使用server.ts中的 SSR 功能部署我的应用程序。

并且该应用程序正在通过 Apache 反向代理"动态"提供给多个域的 localhost:4002。

domainA.com并且domainB.com指向具有修订代理的同一本地主机:4002。 所有域都使用相同的应用实例 目前为止,一切都好。

但是现在我要求它在我们的合作伙伴反向代理下工作,看起来像这样partner.com/app/会将代理反向为partner.domainA.com

这在加载 JS 时会导致很多问题。

目前,base-href 设置为/,这在我们的网站上工作得很好。 但是当用户转到partner.com/app浏览器会尝试从partner.com/*.js加载所有 JS 资产,而 仅在partner.com/app/*.jspartner.domainA.com/*.js上可用。

我可能的解决方案是在请求到达时从 server.ts 设置APP_BASE_HERF

但我尝试的每件事似乎都没有奏效。

我尝试按照本指南进行操作,但它似乎不起作用,它正在从window对象加载 url,而我需要从只能从req.headers.host可用的原始主机进行设置

在 server.ts 中:

res.render(
'../dist/index',
{
req: req,
res: res,
// provers from server
providers: [
// for http and cookies
{
provide: REQUEST,
useValue: req,
},
{
provide: RESPONSE,
useValue: res,
},
/// for cookie
{
provide: NgxRequest,
useValue: req,
},
{
provide: NgxResponce,
useValue: res,
},
// for absolute path
{
provide: 'ORIGIN_URL',
useValue: `${http}://${req.headers.host}`,
},
],
},

有没有办法将ORIGIN_URL放在索引中.html base-herf? 以这种方式设置基础的正确方法是什么?

谢谢

将 main.ts 更改为 :-

window['base-href'] = window.location.pathname;
if (env.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);

在上面的代码中,将 URL 更改为基本 href JSON 所在的位置。

在应用程序模块中添加此提供程序:-

providers: [
{
provide: APP_BASE_HREF,
useValue: window['base-href']
}
]

相关内容

  • 没有找到相关文章

最新更新