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

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

[code]

<?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;

}

[/code]

댓글 작성

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

로그인하기

댓글 4개

감사합니다. ^^

감사 합니다.

감사 합니다.

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고