通过 https 的 Angular 生产构建文件

Posted

技术标签:

【中文标题】通过 https 的 Angular 生产构建文件【英文标题】:Angular production build files over https 【发布时间】:2021-06-16 08:01:11 【问题描述】:

当我在 Angular cli 中使用 ng serve 为我的 Angular 应用程序提供服务时,一切正常,我的文件:polyfill.js、styles.js、favicon.ico 通过 http 提供服务。但是,当我 ng build --prod 并通过某些 http 服务器提供该文件时,polyfill.js、styles.js、favicon.ico 是通过 https 请求的,并且由于这是没有 https 的本地服务器,因此加载失败。 我正在使用 Angular:11.0.4。 两年前我有一个类似的项目,我认为是 angular 9,我使用相同的 http 服务器,只是在不同的机器上,它按预期工作(没有 https)。 这里有什么问题?

【问题讨论】:

您是在根站点目录上构建,还是从子路径访问文件? 文件在 dist 文件夹中 不是我的意思。您是否从虚拟文件夹访问它?还是根域? 来自根域...我从 express 尝试过事件:app.use(express.static(path.join(__dirname, 'dist'))); //服务 Angular 应用 app.get('*', (req, res) => res.sendFile(path.join(__dirname, 'dist/index.html')); ); 在构建项目时或直接在文件中更改基本路径。 ng build --base-href="/demos/" 【参考方案1】:

是 Content-Security-Policy 标头强制 https...当我尝试简单的 http-server form npm 时意识到这一点...

【讨论】:

http-server 是否有任何标志可用于在本地开发中禁用此功能? 我认为 flr http-server 默认是禁用的

以上是关于通过 https 的 Angular 生产构建文件的主要内容,如果未能解决你的问题,请参考以下文章

生产构建后重新加载Angular 6应用程序中断

生产构建后如何解决Angular给定的错误(未定义订阅)?

Angular 5在多个站点上进行生产构建部署

Angular 9 生产版本不会创建命名块文件

如何在 Angular cli 中启用 gzip 压缩以进行生产构建

无法加载 Angular 生产构建 - 由于不允许的 MIME 类型(“text/html”),加载模块被阻止