2010-01-07 3 views
6

어디서나 내 aspx 페이지를 캐시하고 싶지 않습니다. "노 캐시"- 어떤 이유로 IE 내가 내 HTTP 응답 헤더에 "캐시 컨트롤"을 설정 할 수 있는지 확인하기 위해 노력하고IIS7 : 모든 aspx 페이지에는 "no-cache"를 설정하고 images/css/js에는 설정하지 마십시오.

<meta http-equiv="Expires" CONTENT="0"> 
<meta http-equiv="Cache-Control" CONTENT="no-cache"> 
<meta http-equiv="Pragma" CONTENT="no-cache"> 

내 마스터 페이지에서 설정 메타 태그를 무시합니다. 모든 페이지에

HttpContext.Current.Response.Headers.Add("Cache-Control", "no-cache"); 
    HttpContext.Current.Response.Headers.Add("Exipres", DateTime.Now.AddDays(-1).ToShortDateString()); 

과 같이 설정하는 것은 힘들 것입니다. 어쨌든 IIS7에서 이것을 설정할 수 있다면 (aspx 페이지에는이 헤더를 추가하고 images/css/js에는 추가하지 말것) 생각합니다. 가능한가?

편집 : http://technet.microsoft.com/en-us/library/cc753133%28WS.10%29.aspx의 제안에 따라 맞춤 http 응답 헤더를 추가하면 헤더가 js, css, images를 포함한 모든 파일에 추가됩니다. 그래서 여기에 "Cache-Control", "no-cache"를 추가해도 작동하지 않습니다.

Edit2 : httpmodule을 추가하려고합니다. http://blogs.technet.com/stefan_gossner/archive/2008/03/12/iis-7-how-to-send-a-custom-server-http-header.aspx과 비슷한 것입니다. 어떤 제안? 기본적으로

답변

3

http://technet.microsoft.com/en-us/library/cc770661(WS.10).aspx

는 정적 콘텐츠를 캐시 IIS; 비 정적 콘텐츠를 이미 캐싱하고 있다면 조정해야합니다.

+0

aspx를 캐시하고 싶지 않지만 (클라이언트 측에서) 이미지, css 및 js를 캐시하고 싶습니다. IIS에서 * aspx를 캐시하지 않고 캐시 이미지, js, css에 응답 헤더를 추가하려고합니다. – ram

+0

IIS는 기본적으로 aspx를 캐시하지 않습니다. - 그게 내가 말한 것입니다. aspx 페이지를 캐싱하는 경우 동일한 설정을 확인하여 동적 페이지에 대한 캐싱이 비활성화되어 있는지 확인해야합니다. – jvenema

1

임의의 브라우저가 페이지를 캐싱하지 못하게하는 확실한 방법 중 하나는 쿼리 문자열 변수를 임의의 숫자로 설정하여 링크가 항상 "? ran ="로 끝나도록하는 것입니다. 나는 과거에 제한적으로 그렇게했습니다.

사이트에 대한 MasterPage를 사용하는 경우
2

, 당신은 그것의 Page_Load 이벤트에 다음과 같은 응답 헤더를 추가하는 것을 고려 할 수 있습니다 :

protected void Page_Load(object sender, EventArgs e) 
{ 
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate"); 
} 

당신의 .js 파일 (들) MasterPage를 사용하지 않습니다 때문에, 브라우저는 캐시에 대한 참조를 저장해야합니다.

위 예제는 Firefox3, IE7 및 Chrome7에서 잘 작동합니다. 위의 응답 헤더가 캐시 제어를 위해 추가 한 유일한 작업이며 작업을 수행한다는 점에 유의하십시오. 그러나 나는 종종 다른 웹 사이트에 PragmaExpires 응답 헤더를 볼 수 있습니다.예를 들어

가 여기 Gmail에서 사용되는 응답 헤더입니다 :

의 Content-Type : text/html과; 문자셋 = UTF-8
캐시 제어 : 노 캐시, 아니 매장, 최대 - 나이 = 0,
에서 Pragma을-재 검증해야합니다
이 만료 노 캐시 : 금을 1990년 1월 1일 0시 0분 0초 GMT

날짜 : 2010년 (화) 11월 2일 그리니치 표준시 16시 38분 15초
X-DNS-프리 페치 제어 : gzip을
전송 인코딩 :
X-내용 - 형 - 청크
콘텐츠 인코딩 오프 옵션 : nosniff
X 프레임 옵션 : SAMEORIGIN
X-XSS- 보호 : 1; 모드 = 블록
서버 : GSEServer : 사람들이 이전 버전의 브라우저 및/또는 다른 최신 브라우저를 사용하는 경우 GSE

는 잘 모르겠어요.

문제를 해결하기 위해 최소한의 코드를 구현하는 것을 선호하며, 상단에 표시된 Response.AddHeader이 충분하지 않은 경우를 본 적이 없었습니다.