【问题标题】:How do you server-side render an angular app using angular universal and use an ssl certificate?您如何在服务器端使用 Angular Universal 渲染 Angular 应用程序并使用 ssl 证书?
【发布时间】:2018-11-28 15:57:41
【问题描述】:

通常,如果我希望我的 Angular 应用程序通过 https 在本地运行,我将安装证书并在 angular.json 文件中执行此操作:

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "whatever:build",
        "ssl": true,
        "sslCert": "server.crt",
        "sslKey": "server.key"
      }

这会使用本地证书启动应用程序 - 但不会将其用于实际部署。

我的 Angular 通用应用程序具有相同的设置,但出现此错误:

ERROR Error: localStorage and sessionStorage not supported

失败的原因不言自明,但我找不到任何有关正确方法的文档。

我正在使用这个架构师属性来构建我的服务器文件,但这里不能选择 ssl。

    "server": {
      "builder": "@angular-devkit/build-angular:server",
      "options": {
        "outputPath": "dist/server",
        "main": "src/main.server.ts",
        "tsConfig": "src/tsconfig.server.json"
      }
    }

有什么建议吗?

编辑:在部署应用程序并使用服务器驱动的 ssl 设置而不是这些本地 ssl 文件时,此问题仍然存在。第一次访问应用程序时出现错误,之后服务器运行良好,直到我们再次部署..

【问题讨论】:

  • localStorage 和 sessionStorage 在哪里被调用?
  • 它是从构建的 server.js 文件中调用的 - 但该文件正在使用来自 Angular Universal 的代码...

标签: angular ssl angular-universal


【解决方案1】:

我刚刚意识到有一项服务通过节点包使用本地存储,当然当它在服务器上运行时它会失败。有道理。

需要弄清楚我的代码在服务器端渲染时需要做什么(如果有的话)。

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 2018-08-16
    • 2017-11-22
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2016-05-27
    • 2018-09-23
    相关资源
    最近更新 更多