다음은 최신 프로젝트에 사용하고있는 내용입니다.
컨트롤러에서 :
if ( IS_DEV ) {
$this->view->cacheBust = microtime(true);
} else {
$this->view->cacheBust = file_exists($versionFile)
// The version file exists, encode it
? urlencode( file_get_contents($versionFile) )
// Use today's year and week number to still have caching and busting
: date("YW");
}
보기에서 :
<script type="text/javascript" src="/javascript/somefile.js?v=<?= $this->cacheBust; ?>"></script>
<link rel="stylesheet" type="text/css" href="/css/layout.css?v=<?= $this->cacheBust; ?>">
우리의 게시 프로세스는 현재 빌드의 개정 번호를 가진 파일을 생성합니다. 이것은 파일을 URL 인코딩하고 캐시 버스터로 사용하여 작동합니다. 장애 조치 (failover)로서 해당 파일이 존재하지 않으면 연도와 주 번호가 사용되어 캐싱이 계속 작동하며 일주일에 한 번 이상 새로 고쳐집니다.
또한 이는 개발 환경에서 모든 페이지로드에 대해 캐시 버스 팅을 제공하므로 개발자는 모든 리소스 (javascript, css, ajax 호출 등)에 대한 캐시를 지우는 것에 대해 걱정할 필요가 없습니다.