- Cache : 자주 접근하는 데이터를 복사 해놓는 임시 저장소
- Browser Cache : 서버 지연을 줄이기 위해 사용하는 웹 캐시의 일종
- 개발 중 캐시 비우기 : CTRL + F5
- 클라이언트 캐시 방지 : 버전 명시
브라우저 캐싱:
웹 페이지 구성요소(즉 이미지, CSS 파일 등)을 사용자의 PC에 저장했다가 그 페이지를 다시 방문 시 사용자 PC에 저장된 요소를 꺼내 보여줌으로써 속도를 빠르게 하고 트랙픽 절감 효과를 주는 기법
.
from django import template
from time import time
from django.conf import settings
from django.templatetags.static import StaticNode
register = template.Library()
class FreshStaticNode(StaticNode):
def url(self, context):
url = super().url(context)
if settings.DEBUG:
url += '?_={}'.format(int(time()))
return url
@register.tag('fresh_static')
def do_static(parser, token):
return FreshStaticNode.handle_token(parser, token)
- 사용자가 강제적으로 브라우저의 캐시를 지워주지 않으면 배포후에 해당 파일들이 새로 고침이 되지 않는 현상이 발생한다.
- 이런경우 하나의 팁이 파일의 경로 뒤에 ?_=20181128과 같은 쿼리 스트링을 적어 주면
- 브라우저는 쿼리 스트링을 포함한 URL을 기준으로 캐시가 이루어지기 때문에 다른 파일로 인식이 된다.
- 이것을 이용하여 브라우저에서 강제로 정적파일의 캐시를 다시 생성할 수 있게 된다.
출처: Askcompany 장고[기초편] - 27. 개발환경에서 static 캐싱 무효화하기