从 Angular 7 迁移到 12 后出现混合内容错误

问题描述

堆栈: 带有 .NET 的 Angular 12,在 Docker 容器中运行。捆绑包由@angular-devkit/build-angular:browser 构建。

上次工作设置: 该应用程序之前在 Angular 7 上运行,所有资产确实都通过 HTTPS 提供服务。

问题: 在 HTTPS 上运行时,Angular 12 包提供资产,包括。 main.js、polyfills、样式表或基于 HTTP 的网站图标。这会导致包、polyfill、styles.css 和 favicon 出现以下错误

混合内容页面是通过 HTTPS 加载的,但请求 不安全 X. 此请求已被阻止;必须提供内容 通过 HTTPS。

我的 #1 怀疑是 ng 构建过程,虽然我不知道确定方式的方法,资产被提供(?)因此我提到了堆栈的其余部分,以便在需要时检查那里。>

更新:我标记一个答案,但这是我决定采用的一种解决方法,尽管我仍然希望找到更深入的解决方案。

解决方法

不建议在升级应用程序时跳过版本。理想的方法应该是一次升级 1 个主要版本,即 7.x -> 8.x 等等。

为了更好地理解,请遵循 Angular 的更新指南: https://update.angular.io/

,

如果您直接将 Angular 7 升级到 Angular 12,则会出现以下错误:

"Updating multiple major versions at once is not recommended."

假设您在项目上安装了 Angular 7,现在您需要先将应用程序升级到 Angular 8,然后将 Angular 8 升级到 Angular 9,然后是 {{1} } 到 Angular 9,然后 Angular 10Angular 10

Angular 11

现在,您已将 ng update @angular/core@6 @angular/cli@6 --force ng update @angular/core@7 @angular/cli@7 --force ng update @angular/core@8 @angular/cli@8 --force ng update @angular/core@9 @angular/cli@9 --force ng update @angular/core@10 @angular/cli@10 --force ng update @angular/core@11 @angular/cli@11 --force 应用程序升级到 Angular 7,因此您将运行以下命令升级到最新的 Angular 11 版本:

Angular 12

ng update @angular/core@12 @angular/cli@12 --force 已附加到 --force 命令,以防出现 ng update 错误。

编辑

将以下元标记添加到您的 "Incompatible peer dependencies found" 中的 <head> 元素:

HTML