2016-06-19 3 views
0

일부 정적 컨텐츠를 제공하는 데 사용되는 tornado.web.StaticFileHandler 클래스가 있습니다. 이미지가 브라우저에 캐싱되어 이미지 변경이 눈에 띄지 않게됩니다. 이미지가 업데이트되었을 때 브라우저에 알려주기 위해 이미지에 test.jpg?<file modifier> 플래그를 추가하는 해결책을 보았습니다. 불행히도 나는 많은 이미지를 다루고 있으며이 플래그를 추가하는 것은 비용이 많이 듭니다. 브라우저가 콘텐츠를 캐시해야하는 기간을 나타내는 HTTP 요청의 헤더를 변경하는 또 다른 방법이 있습니다. 누구나 정적 파일 처리기로 토네이도에서이 작업을 수행 할 수있는 방법을 알고 있습니다.토네이도 : 캐싱을위한 헤더 설정

또한이 정적 파일 처리기는 .css 및 .js 파일과 같은 다른 콘텐츠를 제공합니다. 특정 내용에 대해 캐싱을 변경하는 방법이 있습니까? 아니면 다른 정적 파일 처리기를 설정하고 다르게 설정해야합니까?

는 ** 또한 노트의

답변

2

의 서브 클래스를 작성합니다 .... 이미지가 나는 변경 내용을 처리하는 프로세스에 의해 선택되지 않는 이유를 의심 다른 토네이도 프로세스에 의해 변경되는 것입니다 get_cache_time을 무시하고 0을 반환하는 StaticFileHandler. file.jpg?v=random-id과 같이 액세스되는 정적 파일에 대해 10 년의 캐시 시간을 반환하는 토네이도의 기본 동작을 방지합니다.

get_cache_time 인수 (경로, 수정, MIME_TYPE)를 무시하고 반환 0

, 함수는 get_cache_time은 (경로, 수정, MIME_TYPE)
+0

감사 제시하지만 문서는 모든 인수가없는 상태를 의미했다 않습니다 . 아십니까? –

+1

내 답변을 수정했습니다. 원한다면 0을 반환하기 전에 경로, 파일의 수정 날짜 및 mime_type을 분석 할 수 있지만 0을 반환하려는 것처럼 들릴 수 있습니다. 항상 그렇듯이 소스를 읽으면 인수의 의미를 알 수 있습니다. https://github.com/tornadoweb/tornado/blob/master/tornado/web.py#L2388 –