JSP에서 수정된 CSS, JS 파일 캐싱 방지하기
웹사이트를 운영/제작하다 보면 인터넷 캐시 때문에 CSS, JavaScript 파일이 바로바로 적용이 안 될 때가 있다.
캐시를 지우거나 link 태그에 style.css?ver=1 이러한 식으로 수정할 때마다 숫자를 올려 적어 넣어서 할 수 도 있으나 한두 번도 아니고… 매번 그런다면 정말 짜-증나는 일이 아닐 수 없다… 그래서 인터넷을 뒤적이다 파일이 수정된 시간 정보를 가져오는 방법을 알게 되어 아래와 같이 정리해 보았다. 앞으로 JSP에서는 아래와 같이 한다면 한결 편할 것이다.
소스는 아래와 같고
1 2 3 4 5 6 7 8 9 10 |
<%@ page import="java.io.*, java.util.*" %> <%-- CSS/JS 파일 캐싱 방지 --%> <% String styleCss = application.getRealPath("/css/style.css"); File style = new File(styleCss); Date lastModifiedStyle = new Date(style.lastModified()); SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmssSSS"); %> |
적용 방법은 css나 js 파일명 뒤에 xxxx.css?ver=<%=fmt.format(lastModifiedStyle)%> 이처럼 적으면 되고, 파일이 수정될 때마다 자동으로 수정된 시간 정보를 불러올 것이다.
1 |
<link rel="stylesheet" type="text/css" href="/css/style.css?ver=<%=fmt.format(lastModifiedStyle)%>" /> |
적용 후 소스 보기 했을 때 결과는 아래와 같다
1 |
<link rel="stylesheet" type="text/css" href="/css/style.css?ver=20180427122255000" /> |
RECENT COMMENTS