일부 브라우저 (특히 Firefox 및 Opera)는 브라우저 세션 간에도 .css 및 .js 파일 의 캐시 된 사본을 사용하는 데 매우 열심입니다 . 이 파일 중 하나를 업데이트 할 때 문제가 발생하지만 사용자 브라우저는 캐시 된 사본을 계속 사용합니다.
문제는 파일이 변경되었을 때 사용자 브라우저가 파일을 다시로드하도록하는 가장 우아한 방법은 무엇입니까?
이상적으로 솔루션은 브라우저가 페이지를 방문 할 때마다 파일을 다시로드하도록 강요하지 않습니다. 나는 자신의 해결책을 답변으로 게시 할 것이지만, 더 나은 해결책이 있다면 귀하의 투표가 결정되도록 할 것입니다.
업데이트 :
여기에서 잠시 동안 토론을 한 후 John Millikin 과 da5id 의 제안이 유용하다는 것을 알았습니다 . 이것에 대한 용어 인 auto-versioning이 있습니다.
내 원래 솔루션과 John의 제안이 결합 된 새로운 답변을 아래에 게시했습니다.
SCdF 가 제안한 또 다른 아이디어 는 파일에 가짜 쿼리 문자열을 추가하는 것입니다. (거짓 쿼리 문자열로 타임 스탬프를 자동으로 사용하는 일부 Python 코드는 pi 에 의해 제출되었습니다 .) 그러나 브라우저가 쿼리 문자열로 파일을 캐시하는지 여부에 대한 논의가 있습니다. (브라우저는 파일을 캐시하고 나중에 방문 할 때 파일을 사용하기를 원합니다. 파일이 변경된 경우에만 파일을 다시 가져 오기를 원합니다.)
가짜 쿼리 문자열로 어떤 일이 발생하는지 명확하지 않기 때문에 그 대답을 받아들이지 않습니다.
iframe.contentWindow.location.reload(true)
. stackoverflow.com/a/22429796/999120의 방법 (4)를 참조하십시오 -이미지에 관한 것이지만 동일하게 적용됩니다.
ExpiresActive On ExpiresDefault "modification"
.