为何单独使用/*无法清除CloudFront中S3存储桶的React构建缓存?
为什么单独用
/*没法清除CloudFront的全部缓存? CloudFront的路径匹配规则和你想的不一样:/*这个通配符只能匹配根目录下的直接文件(比如/index.html、/favicon.ico),不会递归匹配子目录里的资源(像/static/js/main.xyz.js这种带层级路径的文件根本不会被命中)。这就是单独用/*时,子目录里的JS缓存清不掉的核心原因。
你先失效/static/js/main.xyz.js再用/*能生效,是因为前者精准命中了子目录里的缓存文件,后者清理了根目录下的资源,两者结合刚好覆盖了所有构建产物的路径。
适合你的简化方案
既然你不在意失效请求的数量,完全可以一步到位:
- 直接用
**/*作为失效路径:这个通配符会递归匹配所有目录下的所有对象,不管是根目录还是深层子目录的文件都能覆盖,一次请求就能清掉全部缓存。 - 或者拆分前缀批量失效:比如同时提交
/*、/static/*、/assets/*这类路径,也能覆盖React构建的所有产物。
另外提一句,CloudFront每月前1000条失效请求是免费的,超出后费用也极低,小构建包完全不用担心成本问题。
内容的提问来源于stack exchange,提问作者user3456978
相关产品推荐
相关产品推荐

