간혹 운영서버에 js, css 파일 배포시 소스를 확인해보면 파일이 수정되어 않은 경우가 발생하곤 했습니다.
문제는 브라우저에 캐시가 남아있어 발생하게 되는 것인데 이 경우 js, css 파일명 뒤에 쿼리스트링 형태로 문자열을 전달하게 되면 캐시 문제를 방지할 수 있습니다.
1) JSTL과 JSTL fmt(Formatting tags) 태그를 사용하기 위해 라이브러리를 추가한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2) 쿼리스트링 형태로 오늘 날짜를 넣어주기 위해 자바빈 객체를 생성한다.(*Date 클래스의 객체)
생성된 자바빈 객체는 날짜 데이터를 담고 있다.
<jsp:useBean id="today" class="java.util.Date" />
3) 생성된 날짜 객체를 formatDate 속성을 이용해 yyyymmdd 형태로 만들어준다.
<fmt:formatDate value="${today}" pattern="yyyyMMdd" var="updateTime" />
아래 사이트를 참고하면 fmt 태그의 다른 속성들과 포맷들을 확인할 수 있다.
4) include 하는 css, js 파일에 오늘 날짜로 쿼리스트링 형태를 만들어준다.
<!-- 공통 CSS -->
<link href='<c:url value="/include/common.css"><c:param name="date" value="${updateTime}"/></c:url>' rel="stylesheet" type="text/css" />
<!-- 공통 JS -->
<script type="text/javascript" src='<c:url value="/include/common.js"><c:param name="date" value="${updateTime}"/></c:url>"/>'></script>
5) 결과 확인
+피드백은 언제나 환영입니다 :)