Java 관련/JSTL, EL
[JSP, HTML] 소스로 사용자 브라우져 캐시 삭제 또는 초기화하기
Wings of Freedom
2024. 4. 9. 11:12
화면을 수정했는데, 클라이언트의 브라우져에 캐시가 남아서 이전 화면이 나오는 경우가 있다.
직접 브라우져 설정 들어가서 캐시를 지워달라고 요청 할 수도 있지만, 그게 한두번이 아니게 되니 코드에서 캐시를 지울수 없는지 찾아보았다.
이럴수가...
크게 어렵지도 않지만, html한정으로 이게 꼭 필요한 화면이 아니면 아래 설정은 가급적 안 하는게 좋을 것 같다.
HTML 메타태그 이용하기
<!-- 1990년 이후 이 페이지의 캐시를 만료시킴. -->
<meta http-equiv="Expires" content="Mon, 06 Jan 1990 00:00:01 GMT" />
<!-- 캐시를 바로 만료시킴. -->
<meta http-equiv="Expires" content="-1" />
<!-- 페이지 로드시마다 페이지를 캐싱하지 않음. (HTTP 1.0) -->
<meta http-equiv="Pragma" content="no-cache" />
<!-- 페이지 로드시마다 페이지를 캐싱하지 않음. (HTTP 1.1) -->
<meta http-equiv="Cache-Control" content="no-cache" />
JSP, Java 사용시
자바 코드 지만 html과 같음.
response.setHeader( "Pragma", "no-cache" );
response.setDateHeader( "Expires", -1 );
response.setHeader( "Cache-Control", "no-cache" );
JS, CSS 파일 캐시 사용 방지
js나 css등 정적파일도 종종 변경을 해도 캐시문제로 적용이 되지 않는 경우가 많다.
그럴 경우 파일의 url 뒤에 ?timestamp 형태를 넣어준다.
<link rel="stylesheet" href="/css/common.css?20210512" />
<script type="text/javascript" src="/js/common.js?20210512"></script>