Django 프로젝트에서 CSS 파일을 수정해도 브라우저가 이전 버전을 캐시하고 있어, 스타일이 제대로 적용되지 않는 경우가 자주 발생합니다. 이럴 때는 브라우저 캐시를 무효화할 방법이 필요합니다. 가장 간단한 방법 중 하나가 버전(Query Parameter) 방식을 활용하는 것입니다.
처음에 많이 하는 실수가 아래와 같습니다.
<link rel="stylesheet" href="{% static 'css/custom_bootstrap.css?v=250823' %}">
겉보기에 맞는 것 같지만, Django의 {% static %} 태그는 정적 파일 경로만 처리합니다. ?v=250823 같은 쿼리스트링을 내부에 넣으면 Django가 해당 경로를 찾을 수 없어 에러가 발생합니다.
정상적으로 캐시를 회피하려면 쿼리스트링을 {% static %} 태그 바깥에 붙여야 합니다.
<link rel="stylesheet" href="{% static 'css/custom_bootstrap.css' %}?v=250823">
이렇게 하면 Django는 순수하게 custom_bootstrap.css 파일의 경로만 처리하고, 브라우저에는 ?v=250823가 붙어 전달됩니다. 브라우저는 새로운 URL로 인식하기 때문에 기존 캐시가 아닌 최신 CSS 파일을 불러오게 됩니다.
@nullvuild