브라우저 캐시 질문

  • 수정 고려:

    브라우저 캐싱 활용

    정적 리소스에 대한 HTTP 헤더에 만료일 또는 최대 수명을 설정하면 브라우저가 이전에 다운로드된 리소스를 네트워크를 통해서가 아닌 로컬 디스크로부터 로드합니다.
    다음의 캐시 가능한 리소스에 대해 브라우저 캐싱 사용:

웹지기님이 올려주신 팁을 적용 중인데... 웹지기님하고 틀리게 저는 위 파일들은 캐시가 설정이 안먹히네요

뭔가 파일명 뒤에 ?하고 숫자가 붙어서 인식을 못하는가 싶기도 하고..그렇다면 같은 xe를 사용하는 웹지기님은 그런 증상이 없어 보이고요.. 

 

혹시 짐작가시는 부분 있으면 조언좀 부탁합니다.

 

  • ?
    캐시 권고 시간은 7일이상을 추천하더군요
  • ? ?
    • skyo
    • 질문기여자
    네. 1month 또는 1year로 테스트 해보았어요.
  • profile
    10분 캐시 잡혀서 나오는데요? Cache-Control: max-age=600

    근데 private, must-revalidate 속성까지 추가되는 바람에 10분이 지나지 않아도 반드시 재확인하게 되네요. 물론 서버에서는 304 Not Modified라고 대답해 주지만, 재확인하는 것 자체가 시간을 좀 잡아먹지요.

    서버가 아파치가 아닌 IIS라서 웹지기님이 올려주신 .htaccess 규칙을 바로 적용하기는 힘들 것 같은데... 혹시 IIS 설정 중에 private, must-revalidate 속성을 없애는 기능이 있는지 찾아보세요.
  • profile ?
    • skyo
    • 질문기여자
    우와 감사합니다. 말씀 하신 내용을 기반으로 조회해 보니.. 저는 아파치가 아니라 다르게 적용해야 되더군요. 이걸로 적용하니 오류가 싹 사라졌습니다. ^^

    <IfModule mod_headers.c>
    Header unset ETag

    <filesMatch "\.(ico|jpe?g|png|gif|swf|jpg)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    <filesMatch "\.(css)$">
    Header set Cache-Control "max-age=604800, public"
    </filesMatch>
    <filesMatch "\.(js)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    <filesMatch "\.(js?)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    <filesMatch "\.(css?)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    <filesMatch "\.(min?)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    <filesMatch "\.(min)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    <filesMatch "\.(x?html?|php)$">
    Header set Cache-Control "max-age=604800, private"
    </filesMatch>
    </IfModule>
  • profile
    브라우저 캐시 적용하실때 프로필이미지하고 이미지닉네임쪽 폴더는 제외해 주시는게 좋을거에요.