2010-03-30 3 views
4

내 htaccess 파일에 일부 캐시 제어 옵션을 설정하려고합니다. 순간htaccess '헤더가 마지막으로 수정 됨'캐시 문제

그것은 다음과 같습니다

내가 읽은 그러나
<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$"> 
Header set Cache-Control "max-age=2592000, public, must-revalidate" 
Header unset ETag 
FileETag None 
</FilesMatch> 

헤더 (그리고 추가하고 싶었) 설정되지 않은 마지막 수정이 같은 것 때문에, 그러나

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$"> 
Header set Cache-Control "max-age=2592000, public, must-revalidate" 
Header unset Last-Modified 
Header unset ETag 
FileETag None 
</FilesMatch> 

을 ,이 (Firebug에 따라) 사용하면 캐시에서 전혀로드하지 않습니다. (첫 번째 기술은 모든 것을로드하지만)

잘못된 것이 있습니까? 구문이 옳은 것 같습니다.

A.

답변

4

구문은 정확하지만 사용은하지 않습니다. 에 따르면 "속도 팁 : 마지막으로 수정 헤더를 제거은"여기에서 찾을 : 당신이-마지막으로 수정하고있는 ETag 헤더를 제거하면 http://www.askapache.com/htaccess/apache-speed-last-modified.html

, 당신은 완전히 때문에 수정 한 경우 및 제거 할 경우 - 없음 - 경기 요청 및 304 Not Modified Responses (변경되지 않은 응답)이므로 Expires 헤더가 새 콘텐츠를 사용할 수 있음을 나타낼 때까지 파일이 업데이트를 확인하지 않고 캐시됩니다. 또한

:의 캐시 된 버전의 유효성을 검사 할 수 없을 것입니다있는 ETag 헤더와 정적 파일 (이미지, 자바 스크립트, CSS) 브라우저와 캐시에서 마지막으로 수정 된 헤더를 모두 제거함으로써

파일 대 실제 버전. Cache-Control 헤더와 Expires 헤더를 포함함으로써 특정 파일을 특정 기간 동안 캐시하도록 지정할 수 있습니다. 그리고 마법 적으로 (이것은 내가 정말로 약속하는 유일한 트릭입니다) 모든 검증 요청을 제거하십시오 !!

자세한 내용은 원본 링크를 참조하십시오.

+0

Expires 헤더는 콘텐츠가 만료되었음을 나타냅니다. 즉 콘텐츠가 실제로 수정되었음을 의미하지는 않습니다. Last-Modified 헤더를 제거하면 304 응답이 제공된 경우에도 캐시가 강제로 파일을 다시 요청하게됩니다. – JimmyPena