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
5
댓글 4개
감사합니다. ^^
감사 합니다.
감사 합니다.
^^
감사합니다.