본문 바로가기

Creation/Design

[CSS] 브라우저 캐시 때문에 CSS 수정이 반영이 안될 때




 최근 Readiz.com 공사를 다시 재개했는데, CSS를 수정해도 바로 반영이 안되는 문제를 겪었다. 핵심은 브라우저가 똑똑해서 이미 받은 CSS파일을 다시 받지 않기 때문에 발생하는 현상인데, PHP를 통해 꼼수로 이 문제를 해결 할 수 있다. 핵심은, 다르지 않은 파일인데 다른 파일로 인식시킴으로써 파일을 브라우저에게 강제로 다시 받도록 만드는 것이다. 이 꼼수에 사용되는 것이 TimeStamp라는 것이다. 가령, 아래처럼 하면 된다.


	
<link href="./css/readizgen.css?<?=filemtime(\'./css/readizgen.css\')?>" rel="stylesheet"> 
	


  원리는 간단하다. filetime함수를 이용하여 (굳이 이럴 필요는 없고, 랜덤함수를 사용해도 된다. 근데 운이 없어 같은 값을 가져와버린다면? 업데이트가 되지 않을 것이다.) 계속해서 다른 파일을 href해오는 것처럼 보이게 하는 것이다. 해결책은 언제나 알고보면 참 간단하다..