테스트 사이트 - 개발 중인 베타 버전입니다

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

· 5년 전 · 1330 · 8

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쵸딩님이 알려주셨습니다. 이거 쫌 넣어주세요~-->

이름 좀 남깁시다~!

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 8개

베스트 댓글

5년 전 BEST
제가 만든 플러그인을 쓰면 다 해결됩니다. 끝

https://sir.kr/g5_plugin/6157
원댓글 보기 →
왜 바뀌어야 하는걸까요?
말씀하신대로 바꿔버리면 css, js 모두 브라우저 캐싱이 소용없게 될 겁니다.
캐싱을 이용하는 이유가 사라지게 되는 것이죠.
보통 캐싱을 새로고침할 때 쓰는 방법으로 filemtime()을 사용하시는게 더 좋을 듯 싶네요.
개발모드에서만 저렇게하고, 런칭 후에는 원상복구
실제 서비스에서 사용해서는 안 되는 방법입니다. 저렇게 하면 현재 접속한 시간으로 버전을 맞추기 때문에 캐시 유지시간이 1초밖에 안 됩니다. 사실상 사이트 전체 페이지뷰 횟수와 비슷하게 저 파일 다운로드가 요청되기 때문에 서버 부하와 트래픽이 무시못할 정도로 늘어납니다.
CDN이 미스만 나고 스토리지에 의미없이 쌓여만 가겠네요.
저렇게 설계하는 사람이 있을까요?
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);

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

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

같은 방식으로 디비접속정보나 기타 다른 것들도
개발과 상용을 분리해서 적용할 수 있습니다.
제가 만든 플러그인을 쓰면 다 해결됩니다. 끝

https://sir.kr/g5_plugin/6157

게시글 목록

번호 제목
1717629
1717626
1717625
1717621
1717619
1717611
1717610
1717609
1717607
1717601
1717598
1717591
1717590
1717583
1717575
1717572
1717568
1717566
1717549
1717545
1717533
1717512
1717511
1717508
1717495
1717479
1717473
1717470
1717463
1717452