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

CSS/JS 캐시 방지 HOOK

· 1년 전 · 1585 · 4

.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개

1년 전

감사합니다. ^^

1년 전

감사 합니다.

감사 합니다.

1년 전

감사합니다.

게시글 목록

번호 제목
22041
22035
22033
22028
22019
22006
22005
21995
21989
21978
21972
21961
21956
21944
21934
21932
21924
21922
21921
21910
21908
21897
21883
21881
21875
21854
21852
21851
21829
21817