asset 버전 관리하기
Submitted by river -
등록 10 years ago - 수정 10 years ago
css
나 javascript
등은 페이지 로드 속도를 개선하기 위해서 보통 웹서버 설정시 만료 날짜를 길게 잡는다.
css, javascript 파일이 수정됐을 때는, 브라우저가 캐시된 파일을 사용하지 않고 새로 파일을 다운받도록 강제해야 한다. 이 때 사용할 수 있는 방법은 파일명을 변경
하거나 파일명 뒤에 쿼리스트링
을 추가하는 방법이다.
<filename>.<buster>.<extension>
<filename>.<extension>?<buster>
cached_asset
은 이를 도와주는 함수이다.
if ( ! function_exists('cached_asset'))
{
function cached_asset($path, $bustQuery = false)
{
// Get the full path to the asset.
$realPath = public_path($path);
if ( ! file_exists($realPath)) {
throw new LogicException("File not found at [{$realPath}]");
}
// Get the last updated timestamp of the file.
$timestamp = filemtime($realPath);
if ( ! $bustQuery) {
// Get the extension of the file.
$extension = pathinfo($realPath, PATHINFO_EXTENSION);
// Strip the extension off of the path.
$stripped = substr($path, 0, -(strlen($extension) + 1));
// Put the timestamp between the filename and the extension.
$path = implode('.', array($stripped, $timestamp, $extension));
} else {
// Append the timestamp to the path as a query string.
$path .= '?' . $timestamp;
}
return asset($path);
}
}
Stats
-
0 likes
- 3384 views