CSS/JS 캐시 방지 HOOK > 그누보드5 팁자료실

그누보드5 팁자료실

CSS/JS 캐시 방지 HOOK 정보

CSS/JS 캐시 방지 HOOK

본문

.css / .js  ver 파라미터 값을

[ G5_CSS_VER / G5_JS_VER ]에서  [ 파일 수정 시간 ]으로 바꿔줍니다.

style.css?ver=1700102390

script.js?ver=1700102390

 

extend/html.process.hook.php


<?php
if (!defined('_GNUBOARD_')) exit;
 
add_replace('html_process_css_files', 'html_process_css_files_version', 10, 5);
function html_process_css_files_version($links) {
    $files = array();
 
    foreach ($links as $link) {
        if (!trim($link[1])) {
            continue;
        }
 
        preg_match('#'.G5_URL.'.*\.css#', $link[1], $tmp);
        $tmp = preg_replace('%'.G5_URL.'%', G5_PATH, $tmp[0]);
        $ver = is_file($tmp) ? filemtime($tmp) : 'latest'; // G5_CSS_VER
        $link[1] = empty($ver) ? $link[1] : preg_replace('#\.css([\'\"]?>)$#i', '.css?ver='.$ver.'$1', $link[1]);
 
        $files[] = $link;
    }
 
    return $files;
}
 
add_replace('html_process_script_files', 'html_process_script_files_version', 10, 5);
function html_process_script_files_version($scripts) {
    $files = array();
 
    foreach($scripts as $js) {
        if (!trim($js[1])) {
            continue;
        }
 
        preg_match('#'.G5_URL.'.*\.js#', $js[1], $tmp);
        $tmp = preg_replace('%'.G5_URL.'%', G5_PATH, $tmp[0]);
        $ver = is_file($tmp) ? filemtime($tmp) : 'latest'; // G5_JS_VER
        // $add_version_str = (stripos($js[1], $http_host) !== false) ? '?ver='.$ver : '';
        $add_version_str = empty($ver) ? '' : '?ver='.$ver;
        $js[1] = preg_replace('#\.js([\'\"]?>)<\/script>$#i', '.js'.$add_version_str.'$1</script>', $js[1]);
 
        $files[] = $js;
    }
 
    return $files;
}
추천
5

댓글 4개

전체 2,432 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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