处理 amzn CloufFront 中的缓存未命中和“无缓存”指令

问题描述 投票:0回答:1

我目前正在开发一个 Next.js 应用程序,其中某些页面的缓存标头设置为

cache-control: no-cache, max-age=120, must-revalidate
。尽管有这样的配置,我仍然遇到 CloudFront 的缓存未命中情况。根据我的研究,我了解到“无缓存”指示 CDN 在提供内容之前先通过源服务器验证内容的新鲜度。这是否意味着我的源服务器正在传达资源已过时且必须更新的信息?

caching next.js amazon-cloudfront
1个回答
0
投票

no-cache
max-age=120
一般来说,对于 CloudFront 来说是矛盾的。

no-cache
表示未经重新验证,不应从缓存中提供内容。
max-age=120
表示内容在重新验证之前最多可以缓存和提供 120 秒。

这是两件不同的事情。

如果您想设置缓存的最长期限,请从标题中删除

no-cache
must-revalidate
,然后仅使用
cache-control: max-age=120

如果您希望对每个请求进行严格的重新验证,请使用

cache-control: no-cache, must-revalidate
,而不指定
max-age

© www.soinside.com 2019 - 2024. All rights reserved.