0

AWS Cloudfront를 성공적으로 설정했습니다 (제 생각 엔). 그리고 성공적으로 나는 구름면에서 물건을 얻는다는 것을 의미합니다.Cloudfront에서 요청한 파일은 캐시되지 않습니다.

브라우저에서 상황을 캐싱하지 못하고 모든 것이 redownload됩니다.

나는 4.0.4, 클립 및

asset_sync 내가 구성에서 아무것도 그리워 했나 난간, 을 production.rb하는 config.static_cache_control = "public, max-age=#{1.year.to_i}"을 추가하지만 Heroku가 사용하고

도움이되지 않았다? 또는 무엇인가 잘못 되었습니까?

는 요청 헤더입니다

GET /users/avatars/me.jpg HTTP/1.1 
Host: assets.mydomain.net 
Connection: keep-alive 
Cache-Control: no-cache 
Accept: image/webp,*/*;q=0.8 
Pragma: no-cache 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 
DNT: 1 
Referer: http://mydomain.com 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8,he;q=0.6 

및 응답 헤더

HTTP/1.1 200 OK 
Content-Type: image/jpeg 
Content-Length: 18394 
Connection: keep-alive 
Date: Thu, 24 Apr 2014 14:16:40 GMT 
Last-Modified: Sun, 09 Mar 2014 21:17:09 GMT 
ETag: "a81f57bc65cea2535w75aa94c334d" 
Accept-Ranges: bytes 
Server: AmazonS3 
Age: 2157 
X-Cache: Hit from cloudfront 
Via: 1.1 96cb60390320349823485f0fb38.cloudfront.net (CloudFront) 
X-Amz-Cf-Id: gceHbzsluASDFvraASFvalerhgy_GY3nP0Qaa7iPY1ug== 

및 자산에 대한

요청 :

Accept:text/css,*/*;q=0.1 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8,he;q=0.6 
Cache-Control:no-cache 
Connection:keep-alive 
DNT:1 
Host:d36kdk9v8wr6hu.cloudfront.net 
Pragma:no-cache 
Referer:http://mydomain.com 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 

응답 헤더

Accept-Ranges:bytes 
Age:2315 
Cache-Control:public, max-age=31557600 
Connection:keep-alive 
Content-Encoding:gzip 
Content-Length:34412 
Content-Type:text/css 
Date:Thu, 24 Apr 2014 14:16:40 GMT 
ETag:"795ae17b75612313b5ce5ecf1a14cd8" 
Expires:Fri, 24 Apr 2015 20:12:58 GMT 
Last-Modified:Thu, 24 Apr 2014 14:12:59 GMT 
Server:AmazonS3 
Via:1.1 96cb60390320349823485f0fb38.cloudfront.net (CloudFront) 
X-Amz-Cf-Id:SkbZJTSD5PAPnawlerszlsdfnzIOqJROA4LegMgBIPcU1aN0T08sdUA== 
X-Cache:Hit from cloudfront 
+0

콘텐츠가 캐시되지 않는다고 어떻게 판단합니까? 캐시 제어 헤더가 잘 보입니다. – imperalix

+0

흠, 어쩌면 혼란 스럽네요. 캐시에서 가져온 것이거나 크기 열에없는 경우 각 요청에서 네트워크를 보여줘야합니다. 현재 모든 자산이나 이미지는 크기를 표시하고 캐시하지 않습니다. 그게 무슨 뜻입니까? –

답변

0

이것은 저에게 적합합니다. CloudFront 배포판의 소스 인 S3 버킷을 열고 캐시하려는 파일을 찾습니다. 그런 다음 Properties> Metadata에서 원하는 max-age = x의 값으로 Cache-Control 키를 설정하십시오.

희망이 도움이됩니다.

enter image description here

관련 문제