Change cache-busting query string format from ?YYYYMMDDHHMMSS to ?t=UnixTime

- 날짜, 유닉스 타임스탬프, 16진수(CKEditor) 등 여러 가지 포맷을 혼용하고 있던
  캐시 방지용 쿼리스트링의 형태를 "유닉스 타임스탬프"로 통일
- 표준 시간대 처리 등 은근히 많은 자원을 소모하는 date() 함수를 사용하지 않음
- t=를 붙여서 정상적인 쿼리스트링 구조가 나오도록 하여, 웹방화벽이나 CDN
  등에서 문제를 일으킬 가능성을 줄임
- 덤으로, 길이도 2바이트씩 짧아짐
This commit is contained in:
Kijin Sung 2023-09-12 23:15:26 +09:00
parent 68ee78f1f8
commit c8638d2548
9 changed files with 20 additions and 20 deletions

View file

@ -2841,7 +2841,7 @@ class Context
list($width, $height) = getimagesize(\RX_BASEDIR . $filename);
}
self::$_instance->meta_images[] = array(
'filepath' => $filename . '?' . date('YmdHis', filemtime(\RX_BASEDIR . $filename)),
'filepath' => $filename . '?t=' . filemtime(\RX_BASEDIR . $filename),
'width' => $width,
'height' => $height,
);

View file

@ -246,7 +246,7 @@ class DisplayHandler extends Handler
{
case 'HTML':
$json_options = defined('JSON_PRETTY_PRINT') ? (JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) : 0;
$panel_script = sprintf('<script src="%s%s?%s"></script>', RX_BASEURL, 'common/js/debug.js', filemtime(RX_BASEDIR . 'common/js/debug.js'));
$panel_script = sprintf('<script src="%s%s?t=%d"></script>', RX_BASEURL, 'common/js/debug.js', filemtime(RX_BASEDIR . 'common/js/debug.js'));
$panel_script .= "\n<script>\nvar rhymix_debug_content = " . json_encode($data, $json_options) . ";\n</script>";
$body_end_position = strrpos($output, '</body>') ?: strlen($output);
$output = substr($output, 0, $body_end_position) . "\n$panel_script\n" . substr($output, $body_end_position);

View file

@ -466,7 +466,7 @@ class FrontEndFileHandler extends Handler
$url = $file->filePath . '/' . $file->fileName;
if (!$file->isExternalURL && is_readable($file->fileFullPath))
{
$url .= '?' . date('YmdHis', filemtime($file->fileFullPath));
$url .= '?t=' . filemtime($file->fileFullPath);
}
$result[] = array('file' => $url, 'media' => $file->media);
}
@ -486,7 +486,7 @@ class FrontEndFileHandler extends Handler
$concat_content = '@charset "UTF-8";' . "\n\n" . preg_replace('/@charset\s*[\'"][a-z0-9-]+[\'"];\s*/i', '', $concat_content);
Rhymix\Framework\Storage::write(\RX_BASEDIR . $concat_filename, $concat_content);
}
$concat_filename .= '?' . date('YmdHis', filemtime(\RX_BASEDIR . $concat_filename));
$concat_filename .= '?t=' . filemtime(\RX_BASEDIR . $concat_filename);
$result[] = array('file' => \RX_BASEURL . $concat_filename, 'media' => 'all');
}
}
@ -500,7 +500,7 @@ class FrontEndFileHandler extends Handler
$url = $file->filePath . '/' . $file->fileName;
if (!$file->isExternalURL && is_readable($file->fileFullPath))
{
$url .= '?' . date('YmdHis', filemtime($file->fileFullPath));
$url .= '?t=' . filemtime($file->fileFullPath);
}
$result[] = array('file' => $url, 'media' => $file->media);
}
@ -572,7 +572,7 @@ class FrontEndFileHandler extends Handler
$url = $file->filePath . '/' . $file->fileName;
if (!$file->isExternalURL && is_readable($file->fileFullPath))
{
$url .= '?' . date('YmdHis', filemtime($file->fileFullPath));
$url .= '?t=' . filemtime($file->fileFullPath);
}
$result[] = array('file' => $url);
}
@ -590,7 +590,7 @@ class FrontEndFileHandler extends Handler
{
Rhymix\Framework\Storage::write(\RX_BASEDIR . $concat_filename, Rhymix\Framework\Formatter::concatJS($concat_files, $concat_filename));
}
$concat_filename .= '?' . date('YmdHis', filemtime(\RX_BASEDIR . $concat_filename));
$concat_filename .= '?t=' . filemtime(\RX_BASEDIR . $concat_filename);
$result[] = array('file' => \RX_BASEURL . $concat_filename);
}
}
@ -604,7 +604,7 @@ class FrontEndFileHandler extends Handler
$url = $file->filePath . '/' . $file->fileName;
if (!$file->isExternalURL && is_readable($file->fileFullPath))
{
$url .= '?' . date('YmdHis', filemtime($file->fileFullPath));
$url .= '?t=' . filemtime($file->fileFullPath);
}
$result[] = array('file' => $url);
}