2017-01-03 1 views
1

내가 Webpack docs 그것을 읽고 있어요 :자산 캐시 파일의 해시 이름을 사용하지 않고 HTTP 헤더만으로 브라우저 캐싱을 제어 할 수 있습니까?

작동 방법은 함정이 있습니다 새 버전을 배포 할 때 우리는 우리의 자원의 파일 이름을 변경하지 않을 경우, 브라우저는 업데이트되지 않은 생각하고 있습니다 클라이언트는 캐시 된 버전을 갖게됩니다.

궁금 해요, 그것은 자산 파일이 변경 브라우저를 알리기 위해 자산에 대한 추악한 파일 이름 main.55e783391098c2496a8f.js이 메커니즘을 사용하는 것이 필수입니다?

HTTP 헤더로만 제어 할 수 있습니까? 표준에 여러 HTTP 헤더가있어 브라우저 캐시에 애셋을 저장하는 방법을 제어 할 수 있습니다.

Cache-Control: no-cache, no-store, must-revalidate 
Pragma: no-cache 
Expires: 0 
Date: Wed, 24 Aug 2020 18:32:02 GMT 
Last-Modified: Tue, 15 Nov 2024 12:45:26 GMT 
ETag: x234dff 
max-age: 12345 

그래서이 헤더를 혼자 사용할 수 있습니까? 아니면 여전히 파일 이름 main.55e783391098c2496a8f.js에 해시 파트에 대해 귀찮게해야합니까?

답변

0

사용자 에이전트가 페이지를 열 때 항상 올바른 버전의 소스 코드를 가져야합니다.

  • 설정 Cache-Control, Expires과 강한 검증 (ETag) 응답 헤더 : 당신은이를 달성하기 위해 두 가지 옵션이 있습니다. 사용자 에이전트가 각 페이지로드에서 상대적으로 가벼운 조건부 요청을 수행하도록 지시하는 방법이이 방법은
  • 소스 코드 파일 URL에 버전을 삽입하고 Cache-ControlExpires 응답 헤더를 설정합니다. 당신이 사용자 에이전트 지시이 방법은 영원히

일리야 그리고 릭, HTTP conditional requests MDN page에 의해 HTTP Caching article을 확인 자세한 내용은 particural 버전의 소스 코드를 캐시 및 자원 재 검증에 대한이 StackOverflow answer합니다.

관련 문제