그누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
0
베스트댓글
댓글 8개
왜 바뀌어야 하는걸까요?
말씀하신대로 바꿔버리면 css, js 모두 브라우저 캐싱이 소용없게 될 겁니다.
캐싱을 이용하는 이유가 사라지게 되는 것이죠.
보통 캐싱을 새로고침할 때 쓰는 방법으로 filemtime()을 사용하시는게 더 좋을 듯 싶네요.
캐싱을 이용하는 이유가 사라지게 되는 것이죠.
보통 캐싱을 새로고침할 때 쓰는 방법으로 filemtime()을 사용하시는게 더 좋을 듯 싶네요.
개발모드에서만 저렇게하고, 런칭 후에는 원상복구
실제 서비스에서 사용해서는 안 되는 방법입니다. 저렇게 하면 현재 접속한 시간으로 버전을 맞추기 때문에 캐시 유지시간이 1초밖에 안 됩니다. 사실상 사이트 전체 페이지뷰 횟수와 비슷하게 저 파일 다운로드가 요청되기 때문에 서버 부하와 트래픽이 무시못할 정도로 늘어납니다.
CDN이 미스만 나고 스토리지에 의미없이 쌓여만 가겠네요.
저렇게 설계하는 사람이 있을까요?
저렇게 설계하는 사람이 있을까요?
js 나 css 변경이 있을때만 숫자를 변경해서 강제 업데이트를 하는거죠
매번 업데이트는 트래픽만 잡아먹는 문제가 발생합니다
굳이 변경하겠다면 아래와 같이 사용해도 됩니다
if (!defined('_GNUBOARD_')) exit;
define('G5_JS_VER', time());
define('G5_CSS_VER', time());
실제 런칭할때 이렇게 사용하면 ....
매번 업데이트는 트래픽만 잡아먹는 문제가 발생합니다
굳이 변경하겠다면 아래와 같이 사용해도 됩니다
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);
저처럼 개발서버와 상용서버를 분리하는 경우에만 유효할 것이고
상용서버에서 직접 개발을 하시는 분들은 되려 트래픽만 잡아 먹을 거구요.
그래서 첨부터 날짜를 넣지 않는 것이 현명한것이 아닐까 합니다.
(필요할때만 변경하는거죠~)
같은 방식으로 디비접속정보나 기타 다른 것들도
개발과 상용을 분리해서 적용할 수 있습니다.
현재 $_SERVER['HTTP_HOST'] 가 상용인지 개발인지를 판단하신 후
그에 맞게 적절히 사용하시면 되지 않을까 싶네요. (실제로 전 쓰고 있기도 하구요.)
if ( 상용 )
$dummy = '201002';
else
$dummy = date("YmdHis");
define('G5_JS_VER', $dummy);
define('G5_CSS_VER', $dummy);
저처럼 개발서버와 상용서버를 분리하는 경우에만 유효할 것이고
상용서버에서 직접 개발을 하시는 분들은 되려 트래픽만 잡아 먹을 거구요.
그래서 첨부터 날짜를 넣지 않는 것이 현명한것이 아닐까 합니다.
(필요할때만 변경하는거죠~)
같은 방식으로 디비접속정보나 기타 다른 것들도
개발과 상용을 분리해서 적용할 수 있습니다.