2010-12-21 3 views
1

저는 브라우저가 CSS, 이미지, js 등과 같은 다른 리소스를 캐시하도록 강제합니다. 영원히입니다. 페이지에서 수천 개의 작은 이미지가있을 수 있으므로 브라우저가 이미지/CSS를 새로 고치려고하지 않는 것이 중요합니다. 브라우저가 새로 고치려고하면 서버가 폭파되어 불필요하게 페이지를 새로 고침 모드로 유지합니다. 요청 경로가 변경되지 않으면 images/css가 변경되지 않습니다.브라우저가 새로 고침 할 때 리소스를 다시 요청하지 않도록하려면 어떻게해야합니까?

"http://example.com/img/get.php?n=someimage.jpg&v=7" 

하고 스크립트가 자원 보내기 전에 이러한 헤더를 보내는 :

header("Cache-Control: public"); 
header("Expires: Tue, 19 Jan 2037 00:00:00 GMT"); 
header("Last-Modified: Sat, 01 Jan 2000 00:00:00 GMT"); 

는 지금은 같은 URL로 스크립트로 설정 이미지/CSS에 대한 경로를 가지고 그러나 새로 고침 버튼이 눌려지면 Chrome과 Firefox는 모두 이미지/CSS를 다시 요청합니다. Firefox는 Firefox와 달리 주소 표시 줄에있는 Enter를 누르면 요청을 보내는 것처럼 보입니다.

내 질문은 Expires 헤더가 사용자가 새로 고침을 눌러도 2037 년까지 요청을 다시하지 않도록해야하기 때문에 제 질문에 대한 이유입니다. 내가 뭔가 잘못하고 있는거야, 아니면 뭔가 빠졌어?

+1

새로 고침 버튼을 "내 캐시 새로 고침"으로 변경했습니다. 브라우저가 이것을하지 않으면 나는 소변을 보게 될 것입니다! – Stephen

답변

4

수 없습니다. 일부 브라우저는 "새로 고침"이라는 정의를 사용하여 "새로 고침하고 캐시를 새로 고침"을 의미합니다.

서버는 캐싱에 대한 웹 브라우저에만 지침을 제공 할 수 있지만 시행 할 수는 없습니다.

+0

수정. 수동 새로 고침은 서버가 지정한 캐시 지시문을 무시합니다. – EricLaw

관련 문제