0

我对 Angular 5 + Angular Universal + Https 协议有一个奇怪的问题。/:lang除了带有路由的主页之外,我可以在每个页面上的浏览器中检查视图源。我为主页做了 AuthGuard:

import { Injectable }     from '@angular/core';
import { CanActivate }    from '@angular/router';
import { Router } from '@angular/router';
import { Config } from '../config';



@Injectable()
export class AuthGuard implements CanActivate {
langUrl : string;

  constructor(private router: Router, private config: Config) {
      this.langUrl = this.config.getLanguage();
  }
  canActivate() {
    this.router.navigate(['/' + this.langUrl]);
    return true;
  }
}

它适用于每个平台服务器/浏览器。在配置中,我的功能getLanguage()如下所示:

  isSessionAvaible() {
    var test = 'test';
    try {
      localStorage.setItem(test, test);
      localStorage.removeItem(test);
      return true;
    } catch (e) {
      return false;
    }
  }

  getLanguage() {
    if (this.isSessionAvaible()) {
      return localStorage
        .getItem('lang.url');
    } else {
      return this.defaultLang;
    }

}

当我试图输入https://example.org. Guard 总是将我重定向到https://example.org/en那里,我在浏览器中看不到视图源。请参阅下面的屏幕。

HTTPS

当我删除 Node.js Express Server https 重定向时,它看起来像:

var forceSsl = function (req, res, next) {
  if (req.headers['x-forwarded-proto'] !== 'https') {
      return res.redirect(['https://', req.get('Host'), req.url].join(''));
  }
  return next();
};


app.use(forceSsl);

然后访问没有 https http://example.orgAuthGuard 的页面,将我重定向到http://example.org/en浏览器中的查看源代码如下所示:

在此处输入图像描述

之后,当我尝试在https://example.org/没有服务器 https 重定向的情况下进入时,视图源与第一个示例中的相同(使用 https 重定向)。

你知道怎么修理吗?如何在 https 主页上也显示视图源?

4

0 回答 0