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

CSS/JS 캐시 방지 HOOK

· 1년 전 · 1584 · 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년 전

감사합니다.

게시글 목록

번호 제목
21529
21526
21521
21516
21513
21502
21485
21471
21467
21457
21424
21421
21415
21410
21406
21405
21394
21378
21354
21349
21345
21316
21299
21297
21279
21276
21254
21242
21214
21206