2017-03-29 6 views
0

asp.net에서 응용 프로그램을 개발 중이며 특정 기간이 지나면 강제로 .js 파일을 새로 고치고 싶습니다. 나는 위의 설정에 따라 캐시 컨트롤을 알고있는 것처럼브라우저 캐시가 만료되지 않습니다.

<httpProtocol> 
    <customHeaders> 
    <add name="Cache-Control" value="must-revalidate max-age=120" /> 
    </customHeaders> 
</httpProtocol> 

, 브라우저 캐시 2:00 분하고 후에 만료한다 : 지역 환경에서 그것을 테스트하기 위해, 나는 내 web.config 파일에 다음과 같이 변경했다 새 포스트 백은 .js의 최신 버전이 avialable인지 여부를 확인하기 위해 웹 서버에 요청을 보내야합니다. 네트워크 트래픽을 모니터링하는 데 fiddler를 사용했는데 js 파일에 대한 요청이 표시되지 않습니다. 내가 사용중인 브라우저는 Chrome입니다. 그래서 나는 dev 툴을 사용하여 네트워크 트래픽을 모니터링했다. 브라우저에서 해당 파일의 캐시 된 버전을 사용하고 있습니다.

브라우저가 캐시 된 파일의 만료를 강제 설정하는 다른 설정이 있습니까?

답변

1

Cache-Control은 유효하지 않으므로 쉼표로 각각의 값을 시도하십시오 : must-revalidate, max-age=120.

RFC 7234 Hypertext Transfer Protocol (HTTP/1.1): Caching에서

관련 발췌 :

캐시 제어 = 1 # 캐시 지시자

캐시 지시자 = 토큰 [ "="(토큰/인용 문자열)]

및 ABNF 목록 확장 프로그램 RFC 7230 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing :

construc 쉼표로 구분 된 요소 목록을 정의하기 위해 "*"와 유사하게 "#"가 정의됩니다. 전체 형태는 적어도 <N> 가장 <m > 요소에서 나타내는 '<미터 > 소자 <N> # "는 단일 쉼표로 구분 (", ") 및 선택적 공백 (OWS)이다.

또한 올바른 설정으로 새 구성을 적용하십시오. 자세한 내용은 Is it possible to add response http headers in web.config?을 확인하십시오.