静态站点生成页面(SSG)优于非SSG页面加缓存的优势是什么?

时间:2020-07-20 08:22:25

标签: reactjs next.js cdn static-site

Next.js最近发布了9.3版,该版本支持在生成时生成静态网站。本质上,提供的新方法之一是getStaticProps,它可以在构建时获取数据。

我的问题是,如果我使用CDN(例如AWS Cloudfront),使用这种工作流程有什么优势?即使该页面是根据每个请求(如旧版Next.js中的getInitialProps)中的每个请求动态构建的,该页面仍将被Cloudfront缓存并非常快速地返回。因此,我想知道getStaticProps的实际用例是什么,因为任何严肃的网站都已经在使用CDN。我了解该技术主要是针对CMS网站,但即使是在相同资源上,这些内容也可能会定期更改(例如,文章有语法错误,必须更正),这是一个优点,即页面可以动态更改而不是每次构建时间。

1 个答案:

答案 0 :(得分:1)

我们在生产环境中对此进行了很多讨论,并正在升级到9.4,以使SSG在大型企业级站点的CDN后面创建页面。''

这是我们的推理

  1. 我们每天减少约98%的流量,但即使是2% 滴入原产地可能会造成严重破坏,具体取决于所请求的资源和交通量,因为我们的产品受到季节的影响,因此调整原产地的规模成为一场噩梦。我们看到人们一直在错误输入网址,包括广告系列,电子邮件链接等。

  2. 在我们的用例中,每天都会发生
  3. CDN无效,例如:服务器端呈现的公共内容组件可能会影响多个页面,但不会影响整个网站,在这种情况下,不受影响的页面可以由一个静态优化的源。根据内容的不同,例如:HTML页面上的内联样式,我们可能必须刷新CDN上的所有HTML。

TL; DR

静态生成页面意味着原点很聪明,可以在不处理关键资源的情况下重播页面。这取决于您的规模和所玩的流量。