2011-09-04 7 views
4

최근에 새로운 CMS 솔루션을 사용했습니다. 그러나 우리는 기본적으로이 솔루션이 HTML 페이지에 no-cache 헤더 등을 추가하지 않는다는 것을 인식하지 못했습니다.원격으로 IE 캐시 지우기

이제이 문제를 해결했지만 IE를 사용하는 방문자는 특히 이전 CSS 및 JS 파일에 대한 참조를 포함하여 대부분의 HTML 페이지를 캐시합니다.

게시 첫 달에 사이트를 방문한 사용자를위한 캐시 무효화 방법이 있습니까? 이전 캐시 된 버전을 사용하는 사람들 때문에 우리의 디자인 및 JS 기능으로는 성공적으로 나아갈 수 없다는 것이 걱정 스럽습니다.

+0

특정 버전 또는 모두? –

+0

나는 적어도 IE7과 8에 관심이있다. – isNaN1247

답변

3

페이지 요청은 일반적으로 Last-Modified 헤더를 반환합니까? 그것이 내가 경험 한 캐시를 버스트 할 수있는 유일한 방법이다.

대부분의 브라우저는 무언가를 캐싱 중이라면 If-Unmodified-Since 요청 헤더를 보냅니다 (이 CMS의 기본 캐싱 동작은 비정상적인 캐시 만료 날짜를 설정하는 것이 아닌 경우). 따라서 응답에서 Last-Modified:[date you added no-cache headers] 헤더를 내보내고 올바르게 작동하는 HTTP 서버는 클라이언트에게 전체 업데이트 된 HTML 페이지를 보냅니다.

Correct format can be found in the HTTP protocol.

+0

정확히 내 문제는 아니지만 생각 나게했습니다. 내 문제가 내 'Cache-Control' 헤더가'no-cache'로 설정되었다는 것을 알았습니다 ... 문제는 우리 사무실 (그리고 대부분의 클라이언트 - 기반)이 프록시 뒤에 있다는 것입니다. 단순히 캐시 -Control'을 'private, max-age = 0'으로 설정합니다. 'Expires'도'-1'로 나타납니다. – isNaN1247

1

중앙 URL 생성 기능을 가정하면 URL을 추적하고 항상 URL에 물음표가있는 경우 &_version=2 (&_version=2)을 모든 URL에 추가합니다.

이것은 웹 응용 프로그램에 영향을주지 않지만 (_version GET 필드를 사용하지 않는 한) 변경된 URL을 링크 된 모든 리소스로 시뮬레이트합니다. 초기 URL (예 : /)이 항상 요청되므로 모든 브라우저가 모든 리소스를 다시 다운로드합니다.

+1

각 요청마다 HTML이 다시 다운로드되는 경우, CSS와 JS 같은 파일에 대해 이런 종류의 흉상이 작동하지만. IE (지금까지 테스트 한 6 ~ 8 개)는 캐시 된 HTML을 다시 요청하지 않는 것 같습니다. 아마도 '프록시 뒤에있는'문제 일지 모르지만 Jon Skeet의 두뇌처럼 IE를 캐싱해야한다는 것을 알았습니다. 브라우저 문제에 대해 더 많이 생각하고 있습니다. – isNaN1247

+0

PS - 또한 IIS 재 작성 규칙을 시도하여 쿼리 문자열을 추가했습니다. . 그러나 브라우저가 URL에 대한 헤더를 다시 요청하지 않기 때문에 리디렉션을 수행 할 '위치'헤더가 표시되지 않습니다. 추신 : URL에 검색어 매개 변수를 사용하는 경우 검색어 문자열 추가 URL이 표시되지 않도록 Google/Bing 웹 마스터 도구를 업데이트해야합니다. :) – isNaN1247