현재 매주 업데이트되는 개체 태그에 여러 PDF 파일이 있는 웹사이트를 호스팅하고 있습니다. 이러한 PDF 파일의 이름은 동일하게 유지되지만 데이터는 변경되었습니다.
현재 사용 중인 제품:
으아악PDF 업데이트되면 기대하겠습니다
으아악최신 PDF를 읽지만 이전과 동일하게 유지됩니다.
추가했어요? 파일명 끝부분에 최신버전이 있는지 확인해야 하는데 안되는 것 같습니다.
브라우저의 캐시를 지우면 업데이트가 되지만, 당연히 사용자에게는 작동하지 않습니다.
모든 도움에 감사드립니다.
P粉3005417982024-03-30 00:20:52
이 맥락에서 캐시는 브라우저가 과거에 URL에서 데이터를 로드했고 여전히 로컬 복사본을 가지고 있는 위치를 나타냅니다. 작업 속도를 높이고 대역폭을 절약하기 위해 서버에서 새 복사본을 요청하는 대신 로컬 복사본을 사용합니다.
브라우저가 새 복사본을 가져오도록 하려면 캐시에 있는 복사본이 잘못되었다고 생각하도록 만드는 작업을 수행해야 합니다.
이 방법을 사용하려고 하지만 요구 사항에 실제로 적합하지 않아 구현이 손상되었습니다.
이 기술은 웹 사이트의 스타일시트와 같이 자주 변경되지 않고 예측할 수 없는 리소스를 위해 설계되었습니다. (자원이 매주 바뀌기 때문에 이것은 좋은 선택이 아닙니다.)
작동 방식은 리소스의 URL이 변경될 때마다 변경된다는 것입니다. 이는 URL이 브라우저에 의해 캐시된 데이터와 일치하지 않음을 의미합니다. 브라우저는 새 URL을 모르기 때문에 다시 요청해야 합니다.
쿼리를 n=1
로 하드코딩했으므로 쿼리는 절대로 변경되지 않으며, 이로 인해 개체가 삭제됩니다.
일반적인 접근 방식은 쿼리 값을 파일의 타임스탬프 또는 체크섬으로 설정하는 것입니다. (이 작업은 일반적으로 배포 프로세스의 일부로 웹 사이트의 빌드 도구를 사용하여 수행됩니다.)
HTTP는 새 복사본을 가져와야 하는 시기를 브라우저에 알려주는 메커니즘을 제공합니다. 다양한 헤더가 있으므로 이 웹 작성자 및 웹마스터를 위한 캐싱 튜토리얼을 읽어보시기 바랍니다. 이 튜토리얼에서는 주제를 매우 잘 다룹니다.
문서가 매주 만료되므로 가장 좋은 방법은 PDF URL의 HTTP 리소스에 Expires
헤더를 설정하는 것입니다.
예를 들어 새 버전이 업로드될 것으로 예상되는 시간으로부터 1시간 후로 프로그래밍 방식으로 설정할 수 있습니다.
이 작업을 수행하는 방법은 PDF가 배포된 호스트의 HTTP 서버 및/또는 서버 측 프로그래밍 기능에 따라 다릅니다.