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

@ -40,7 +40,7 @@ class Icon
$filename = 'files/attach/xeicon/' . ($domain_srl ? ($domain_srl . '/') : '') . $icon_name;
if (Storage::exists(\RX_BASEDIR . $filename))
{
return \RX_BASEURL . $filename . '?' . date('YmdHis', filemtime(\RX_BASEDIR . $filename));
return \RX_BASEURL . $filename . '?t=' . filemtime(\RX_BASEDIR . $filename);
}
else
{
@ -64,7 +64,7 @@ class Icon
{
$width = $info['width'];
$height = $info['height'];
return \RX_BASEURL . $info['filename'] . '?' . date('YmdHis', filemtime(\RX_BASEDIR . $info['filename']));
return \RX_BASEURL . $info['filename'] . '?t=' . filemtime(\RX_BASEDIR . $info['filename']);
}
else
{

View file

@ -783,7 +783,7 @@ class CommentItem extends BaseObject
}
else
{
return $thumbnail_url . '?' . date('YmdHis', filemtime($thumbnail_file));
return $thumbnail_url . '?t=' . filemtime($thumbnail_file);
}
}
@ -798,7 +798,7 @@ class CommentItem extends BaseObject
clearstatcache(true, $thumbnail_file);
if (file_exists($thumbnail_file) && filesize($thumbnail_file) > 0)
{
return $thumbnail_url . '?' . date('YmdHis', filemtime($thumbnail_file));
return $thumbnail_url . '?t=' . filemtime($thumbnail_file);
}
// return false if neigher attached file nor image;

View file

@ -1135,7 +1135,7 @@ class DocumentItem extends BaseObject
}
else
{
return $thumbnail_url . '?' . date('YmdHis', filemtime($thumbnail_file));
return $thumbnail_url . '?t=' . filemtime($thumbnail_file);
}
}
@ -1149,7 +1149,7 @@ class DocumentItem extends BaseObject
clearstatcache(true, $thumbnail_file);
if (file_exists($thumbnail_file) && filesize($thumbnail_file) > 0)
{
return $thumbnail_url . '?' . date('YmdHis', filemtime($thumbnail_file));
return $thumbnail_url . '?t=' . filemtime($thumbnail_file);
}
// Get content if it does not exist.

View file

@ -137,7 +137,7 @@ var auto_saved_msg = "{$lang->msg_auto_saved}";
CKEDITOR.dtd.$removeEmpty.ins = 0;
// Set the timestamp for plugins.
CKEDITOR.timestamp = '{strtoupper(dechex(max($ckeditor_main_filemtime, $ckeditor_config_filemtime, $editor_config_timestamp ?? 0)))}';
CKEDITOR.timestamp = '{max($ckeditor_main_filemtime, $ckeditor_config_filemtime, $editor_config_timestamp ?? 0)}';
// Add editor components.
<!--@if($enable_component)-->

View file

@ -1109,7 +1109,7 @@ class MemberModel extends Member
$info = new stdClass();
$info->width = $width;
$info->height = $height;
$info->src = \RX_BASEURL . $image_name_file . '?' . date('YmdHis', filemtime(\RX_BASEDIR . $image_name_file));
$info->src = \RX_BASEURL . $image_name_file . '?t=' . filemtime(\RX_BASEDIR . $image_name_file);
$info->file = './'.$image_name_file;
$GLOBALS['__member_info__']['profile_image'][$member_srl] = $info;
break;
@ -1142,7 +1142,7 @@ class MemberModel extends Member
$info = new stdClass;
$info->width = $width;
$info->height = $height;
$info->src = \RX_BASEURL . $image_name_file. '?' . date('YmdHis', filemtime(\RX_BASEDIR . $image_name_file));
$info->src = \RX_BASEURL . $image_name_file. '?t=' . filemtime(\RX_BASEDIR . $image_name_file);
$info->file = './'.$image_name_file;
$GLOBALS['__member_info__']['image_name'][$member_srl] = $info;
}
@ -1176,7 +1176,7 @@ class MemberModel extends Member
$info = new stdClass;
$info->width = $width;
$info->height = $height;
$info->src = \RX_BASEURL . $image_mark_file . '?' . date('YmdHis', filemtime(\RX_BASEDIR . $image_mark_file));
$info->src = \RX_BASEURL . $image_mark_file . '?t=' . filemtime(\RX_BASEDIR . $image_mark_file);
$info->file = './'.$image_mark_file;
$GLOBALS['__member_info__']['image_mark'][$member_srl] = $info;
}
@ -1232,7 +1232,7 @@ class MemberModel extends Member
$localpath = str_replace('/./', '/', parse_url($info->src, PHP_URL_PATH));
if(file_exists($_SERVER['DOCUMENT_ROOT'] . $localpath))
{
$info->src = $localpath . '?' . date('YmdHis', filemtime($_SERVER['DOCUMENT_ROOT'] . $localpath));
$info->src = $localpath . '?t=' . filemtime($_SERVER['DOCUMENT_ROOT'] . $localpath);
}
}
$GLOBALS['__member_info__']['group_image_mark'][$member_srl] = $info;

View file

@ -19,7 +19,7 @@ class rssModel extends rss
$config->feed_document_count = intval($config->feed_document_count ?? 15) ?: 15;
if (isset($config->image) && $config->image)
{
$config->image_url = $config->image . '?' . date('YmdHis', filemtime($config->image));
$config->image_url = $config->image . '?t=' . filemtime($config->image);
}
return $config;