그누x쵸딩님이 알려주셨습니다. > 자유게시판

자유게시판

그누x쵸딩님이 알려주셨습니다. 정보

그누x쵸딩님이 알려주셨습니다.

본문

js캐싱관련 반영이 안되는 경우가 있어 찾아보니

 

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

define('G5_JS_VER',  '171222');
define('G5_CSS_VER', '171222');

이런식인거를

 

if (!defined('_GNUBOARD_')) exit;

define('G5_JS_VER',  date("Y-m-dH:i:s"));

define('G5_CSS_VER', date("Y-m-dH:i:s"));

이렇게 하면 된다고 하네요..

 

애초에 이렇게 좀 넣어주고,,,

코드에다가

<!--- 그누x쵸딩님이 알려주셨습니다. 이거 쫌 넣어주세요~-->

이름 좀 남깁시다~!

 

 

추천
0

베스트댓글

댓글 8개

말씀하신대로 바꿔버리면 css, js 모두 브라우저 캐싱이 소용없게 될 겁니다.
캐싱을 이용하는 이유가 사라지게 되는 것이죠.
보통 캐싱을 새로고침할 때 쓰는 방법으로 filemtime()을 사용하시는게 더 좋을 듯 싶네요.
실제 서비스에서 사용해서는 안 되는 방법입니다. 저렇게 하면 현재 접속한 시간으로 버전을 맞추기 때문에 캐시 유지시간이 1초밖에 안 됩니다. 사실상 사이트 전체 페이지뷰 횟수와 비슷하게 저 파일 다운로드가 요청되기 때문에 서버 부하와 트래픽이 무시못할 정도로 늘어납니다.
js 나 css 변경이 있을때만 숫자를 변경해서 강제 업데이트를 하는거죠
매번 업데이트는 트래픽만 잡아먹는 문제가 발생합니다

굳이 변경하겠다면 아래와 같이 사용해도 됩니다
if (!defined('_GNUBOARD_')) exit;
define('G5_JS_VER',  time());
define('G5_CSS_VER', time());
실제 런칭할때 이렇게 사용하면 ....
config.php의 상단 어느 즈음에서
현재 $_SERVER['HTTP_HOST'] 가 상용인지 개발인지를 판단하신 후
그에 맞게 적절히 사용하시면 되지 않을까 싶네요. (실제로 전 쓰고 있기도 하구요.)
if ( 상용 )
  $dummy = '201002';
else
  $dummy = date("YmdHis");

define('G5_JS_VER',  $dummy);
define('G5_CSS_VER', $dummy);

저처럼 개발서버와 상용서버를 분리하는 경우에만 유효할 것이고
상용서버에서 직접 개발을 하시는 분들은 되려 트래픽만 잡아 먹을 거구요.

그래서 첨부터 날짜를 넣지 않는 것이 현명한것이 아닐까 합니다.
(필요할때만 변경하는거죠~)

같은 방식으로 디비접속정보나 기타 다른 것들도
개발과 상용을 분리해서 적용할 수 있습니다.
전체 128 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여2 회 시작24.04.25 20:23 종료24.05.02 20:23
  2. 참여80 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT