![http 标头必须确保 cloudfront 分布式文件不会被浏览器缓存](https://linux22.com/image/548481/http%20%E6%A0%87%E5%A4%B4%E5%BF%85%E9%A1%BB%E7%A1%AE%E4%BF%9D%20cloudfront%20%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E4%B8%8D%E4%BC%9A%E8%A2%AB%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98.png)
我有一个 Rails 生成的 JS 文件,我想通过 CloudFront 分发(使用 EC2 上的 Rails 应用程序作为源服务器)。有谁知道我应该在 JS 文件的响应中使用哪些标头,以确保最终用户的浏览器不会缓存 JS 文件?
我知道 CloudFront 不尊重任何少于 1 小时的过期标头...但文档说这些标头仍会传递给客户端: http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/
使用以下内容是否安全?
Cache-Control: no-cache
Pragma: no-cache
答案1
嗯,结果我根本不想这么做。CloudFront 尊重no-cache
标头,因此实际上不会在 CloudFront 上缓存 JS 文件一小时。为此使用 CloudFront 真的没有意义……更多信息可以在我的 AWS 论坛上找到邮政。
答案2
显然 CF 不再尊重标头。我尝试了、和标头no-cache
的几种组合,但 CF 总是在第一次访问后返回。但它确实将这些标头原封不动地传递给客户端。Cache-Control
Pragma
Expires
X-Cache:Hit from cloudfront