阅读列表

在AWS 上部署Angular网站的正确方式

Oceanic

发表于 2025年07月22日

加入到阅读列表分享本文到 X

Angular官方给出的AWS S3上部署方案指向了一个Github的项目,但是这个项目并不能解决Angular的部署问题,因为在AWS上部署Angular网站不等于在S3上部署Angular网站,尽管S3有静态网站托管这个选项,但是有一个限制:要么通过S3分配给你的那个基于amazonaws域名的长网址访问这个网站,要么你只能通过http(而非https)的方式绑定你自己的域名。显然这两个选项都不是我们想要的。为了实现基于https的自己域名访问S3托管的网站,我们还必须使用AWS的CloudFront服务。包括Angular官方文档在内的很多来源都仅仅停留在将Angular的dist文件夹里的文件上传到S3的bucket这一步,但这离部署一个产品级的网站远远不够,我们需要解决的是以下几个问题:

  1. 配置S3释放尽可能小的权限,而不是开放Public Access
  2. 配置S3支持我们的后台应用和前端产品的交互(解决CORS问题)
  3. 配置S3让我们的浏览器缓存应该缓存的文件,以及不缓存不应该缓存的文件
  4. 配置CloudFront适配我们S3托管的网站
  5. 配置CloudFront适配Angular这种单页应用
  6. 可选:配置CloudFront让网站符合SEO习惯,比如把example.com/page1 301转向到www.example.com/page1
  7. 最后,必须实现ng build之后的自动部署

本文将一步一步的进行详细的讲解。

这是一篇需要付费阅读的文章,请完成支付以阅读完整的文章