문제

새 사이트를 개발하거나 새 코드가 커밋된 후 CSS와 관련된 새 사이트의 변경 사항을 테스트할 때 누군가 변경 사항을 확인하러 가면 항상 이전 CSS의 캐시된 버전이 표시됩니다.사람들은 화면에 최신 CSS가 있는지 확신할 수 없기 때문에 테스트 시 많은 문제를 일으키고 있습니다. (Shift를 누르고 새로 고침을 클릭하면 이 캐시가 지워진다는 것을 알고 있지만 최종 사용자가 이를 알 것이라고 기대할 수는 없습니다.)가능한 해결책은 무엇입니까?

도움이 되었습니까?

해결책

정적 파일(또는 쿼리 문자열이 중요하지 않은 모든 것)에서 CSS를 제공하는 경우 브라우저가 완전히 다른 리소스를 가져오고 있다고 생각할 것이므로 브라우저가 새로운 요청을 하도록 변경해 보세요. 예를 들면 다음과 같습니다.

마크업의 CSS 참조에 "styles.css?token=1234"를 입력하고 각 CSS 체크인에서 "token" 값을 변경합니다.

다른 팁

개발 환경에서는 Expires 헤더를 훨씬 낮게 설정하십시오.프로덕션 환경에서는 더 높게 설정한 다음 릴리스하기 약 일주일 전에 낮게 설정하세요.

훌륭한 해결책은 아니지만 이전에 CSS 파일 호출 끝에 쿼리 ​​문자열을 추가하여 페이지 수준에서 이 문제를 해결했습니다.

 <link href="/css/global.css?id=3939" type="text/css" rel="stylesheet" />

그런 다음 페이지 로드 시 항상 다른 값을 로드하도록 id 값을 무작위로 지정했습니다.그런 다음 프로덕션으로 진행하기 전에 이 코드를 꺼냅니다.구성 파일에서 값을 가져와 커밋당 한 번만 로드하면 된다고 가정합니다.

동일한 문제/해결책이 있는 이 질문의 JavaScript 버전에 대해 유사한(좀 더 자세한) 답변이 제공됩니다.

공격적인 JavaScript 캐싱에 대한 도움말

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top