【发布时间】:2020-03-05 02:46:59
【问题描述】:
我有一个 Angular 应用程序,该应用程序当前由 .Net Core 呈现在服务器端。我想更改我的构建过程以预呈现我的几乎所有站点并将所有静态文件推送到 Amazon S3 存储桶并将我的域名指向那里。但是,我无法预渲染我的所有网站(至少现在还没有)。
我发现我可以return my index.html 处理任何未预渲染且不存在于 S3 存储桶中的页面,这将允许我在客户端渲染页面,但我想更进一步,服务器端即时渲染页面。
如果预呈现的版本不存在,我是否可以将 S3 站点用作反向代理,从我的 .Net Core 站点获取 SSR 页面?
更新:为了清楚起见,S3 存储桶将用于 CloudFront CDN,因此在 S3 存储桶前设置代理可能不是一种选择。
更新 2: 我发现我可以发送 dynamic content via CloudFront,但我不希望一切都是动态的。我希望从廉价的 S3 存储桶中提供任何静态内容(例如我的预渲染页面),并且如果静态版本不存在,则仅从更昂贵的 EC2 实例中提供动态内容。
【问题讨论】:
-
您可以通过在 S3 存储桶和 CloudFront 之间使用 EC2 实例设置反向代理来实现此目的,并配置中间件以呈现缺失的页面。
标签: angular amazon-web-services amazon-s3 server-side-rendering