ruby-on-rails – 设置Cloudfront永不重新获取资产
发布时间:2020-12-17 03:21:21 所属栏目:百科 来源:网络整理
导读:我有 a Rails app使用Cloudfront作为其CDN和sprockets来压缩资产并设置长的Cache-Control标头. 对资产的第一个请求给我响应头像这样: Cache-Control:public,max-age=31536000Connection:closeContent-Encoding:gzipContent-Type:application/javascriptEtag
我有
a Rails app使用Cloudfront作为其CDN和sprockets来压缩资产并设置长的Cache-Control标头.
对资产的第一个请求给我响应头像这样: Cache-Control:public,max-age=31536000 Connection:close Content-Encoding:gzip Content-Type:application/javascript Etag:"892a3afb514e3c84646835f9ef101026" Last-Modified:Tue,17 Jan 2012 16:05:17 GMT Server:thin 1.2.11 codename Bat-Shit Crazy Vary:Accept-Encoding Via:1.0 c662f4e5a3bc7b224ce1bbecb0a23d82.cloudfront.net:11180 (CloudFront),1.0 fc4797024fafe16fcc03e892c23f078d.cloudfront.net:11180 (CloudFront) X-Amz-Cf-Id:bd2a89fb81bba2513f30d6940347693ef483defb4783da06d81b002af23545c39b9176b2c7cb144f,VF69FYlYU8ezzHQp7QkU2GvEQ8NmDqEwRX-wu7H63yNqE1ZlTaAq3g== X-Cache:Miss from cloudfront X-Runtime:0.012413 X-Ua-Compatible:IE=Edge,chrome=1 完善.它错过了Cloudfront的缓存,从我的应用程序中获取了缓存,因此它应该从现在开始加载它. 现在……如果我刷新页面,我会收到以下响应标题: Connection:keep-alive Server:thin 1.2.11 codename Bat-Shit Crazy Via:1.0 86123d99569c9296c8605243e9a10621.cloudfront.net:11180 (CloudFront),1.0 de9fc23d505dae3d19973a98bfa1eba0.cloudfront.net:11180 (CloudFront) X-Amz-Cf-Id:a7bf6ffb30c43d306835190d210aeb8ec794c1ff619ad7aaecbad220c1822fe165bda624ae8382e1,bcij_88KOAvLPSqEKDRSvOBjEj7atiKBCAjSbqc2cfdb-BHOTi--LA== X-Cache:RefreshHit from cloudfront X-Runtime:0.006909 X-Ua-Compatible:IE=Edge,chrome=1 看起来它打到了Cloudfront.我得到304未修改.所以我似乎并没有再次下载文件,但我发现这个请求也是我的源服务器. 为什么会这样? Cloudfront现在不应该始终缓存我的资产吗?我正在对我的资产进行版本控制,所以除了第一个请求之外,我真的绝不希望从服务器获取它.有什么办法可以强迫这种行为吗? 解决方法
结果是Cloudfront
won’t respect the Cache-Control header if no Date header is set.
在资产中添加日期标题可修复所有内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |