2011-12-05 5 views
6

내가 뭘 잘못하고 있는지 잘 모르겠지만 모든 노력에도 불구하고 클라이언트가 정적 리소스를 캐시 할 수없는 것 같습니다. 내 Web.config의에서정의 된 클라이언트 캐시가 무시 된 것처럼 보입니다

, 나는 다음과 같은 항목을 추가했습니다 : 문서에 따르면

<staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> 
    </staticContent> 

를, 이것은 우리가 정적 콘텐츠를 유지하려는 알려 클라이언트 브라우저에 응답 헤더를 보내야합니다 30 일 동안 캐시됩니다.

클라이언트가 수신중인 것을보기 위해 피들러를 사용하면 내 web.config 추가가 완전히 무시되는 것처럼 보입니다.

다음은 피들러보고있는 것이다 :

Cache-Control: no-cache 
Date: Mon, 05 Dec 2011 14:09:44 GMT 
Expires: -1 
Pragma: no-cache 
Vary: Accept-Encoding 

내가이 그래서 난 내가 놓치고 있다는 그것을 무엇인지 확실하지 않다 오버라이드 (override) IIS의 모든 헤더를 필요가 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

6

나는 금이 갔지만 시간이 좀 걸렸습니다. 서버에서 304 초를 강제로 변경하려고합니다 (변경 없음). IIS 버전에 따라 다릅니다.

그것은 가장 당신이 하나의 디렉토리 에서 정적 컨텐츠있어 모든함으로써 얻을 것 (예를 들어 content 그래서 당신이 가진 것 /content/css/content/js etc)

그럼 당신은 단지에 대한 만료되지 않는 디렉토리 아래의 모든 것을 확인해야, 말하자면, 30 일.

IIS7

훨씬 쉽습니다. 가장 쉬운 방법 - 위의 콘텐츠 디렉토리에 web.config을 추가하십시오.

<system.webServer> 
    <staticContent> 
     <clientCache 
      cacheControlMaxAge="30.00:00:00" 
      cacheControlMode="UseMaxAge" /> 
    </staticContent> 
</system.webServer> 

IIS6 메타베이스를 조작해야합니다

web.config는이 지침을 만료 단지 것이다. IIS6에서는 XML이 아니기 때문에 다음 안내를 따르십시오. IIS6 ETags metabase commands

위의 간단한보기와 함께 304s가 나오는 방화범이 끌린 쇼를 모두 사용했습니다.

+0

우선, 귀하의 도움에 감사드립니다. 위에서 지적한대로 304를 얻지 만 콘텐츠 폴더에 web.config를 추가해도 약간의 차이는 없습니다./Content 폴더에 새로운 web.config를 추가하려고 시도하고 500 오류가 발생했습니다 (찾고있는 리소스에 문제가 있으며 표시 할 수 없습니다 _). 나는 또한 자원이있는 폴더로 옮겼습니다 :/Content/css 그리고 css 파일은 이제 성공적으로 검색되었지만 no-cache 헤더로 다시 검색되었습니다. – Yag

+0

이게 도움이 될 것 같습니다 http://stackoverflow.com/questions/5385714/deploying-website-500-internal-server-error routing maybe .... – penderi

관련 문제