Angular 通用快递服务器显示功能 url 而不是条目 url

Angular universal express server shows function url instead of entry url

帮助我需要让我的自定义域获取商店配置但是当我尝试在服务器端使用 url 时向我显示云功能 url,而不是 url 用户输入。 例子: 我的用户在浏览器中输入 https://test-url.mybuss.co/ 托管重定向到函数(即 https://us-east1-blablabla.com/) 函数呈现我的 html 这包括对我的 API 进行一些 http 调用但是 我有两种方法可以识别哪家公司试图检查我的商店

第一个查询参数 https://test-url.mybuss.co/myStore 我发送 myStore 作为查询参数并成功 第二种情况 https://test-url.mybuss.co/ 我发送主机 url 作为参数并成功 但是每当我在服务器端而不是发送此 URL(https://test-url.mybuss.co/) 时,快速服务器会捕获云函数 url。 有什么想法吗?

我已经尝试了每个主机参数

console.log(req.headers.host);

console.log(req.hostname);

console.log(req.host); // even this deprecated one

console.log(req.subdomains)

他们都给我相同的结果 https://us-east1-blablabla.com/

尝试使用 platformLocation 还在这里尝试了这个解决方案

req.get('host')

get server url

所以我的答案的解决方案是使用参数 x-fowarded-Host 我通过 req.get('x-forwarded-Host') 获得的 并通过供应商转移

 res.render(indexHtml, {
      req, providers: [
        { provide: APP_BASE_HREF, useValue: req.baseUrl },
        { provide: 'ORIGIN_URL', useValue: req.get('x-forwarded-Host') },
      ]
    });

我还必须包括这些行 app.server.module.ts

@NgModule({
  imports: [
    AppModule,
    ServerModule,
    ServerTransferStateModule,
  ],

app.module.ts

  imports: [
    BrowserTransferStateModule
],

为了在我的解析器中检索数据,我必须在我的构造函数中包含这个变量

@Optional() @Inject('ORIGIN_URL') public urlOrigin: string