Programming

내 Javascript 파일의 캐싱을 방지하는 방법은 무엇입니까?

procodes 2020. 8. 11. 20:45
반응형

내 Javascript 파일의 캐싱을 방지하는 방법은 무엇입니까? [복제]


간단한 HTML이 있습니다.

<html>
<body>
<head>
<meta charset="utf-8">
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
<script src="test.js"></script>
</body>
</html>

test.js에서 Javascript 기능을 변경했지만 브라우저가이 파일을 캐시하고 있습니다. 스크립트 src에 대해 캐시를 비활성화하는 방법은 무엇입니까?


임의의 쿼리 문자열을 src

변경할 때마다 쿼리 문자열을 증가시켜 수동으로 수행 할 수 있습니다.

<script src="test.js?version=1"></script>

또는 서버 측 언어를 사용하는 경우 다음을 자동으로 생성 할 수 있습니다.

ASP.NET :

<script src="test.js?rndstr=<%= getRandomStr() %>"></script>

캐시 무효화에 대한 자세한 정보는 여기에서 찾을 수 있습니다.

https://curtistimson.co.uk/post/front-end-dev/what-is-cache-busting/


<script src="test.js?random=<?php echo uniqid(); ?>"></script>

편집 : 또는 클라이언트에 캐시되도록 파일 수정 시간을 사용할 수 있습니다.

<script src="test.js?random=<?php echo filemtime('test.js'); ?>"></script>

스크립트에 대한 캐싱 제어 HTTP 헤더를 보내도록 웹 서버구성하십시오 .

HTML 문서의 가짜 헤더 :

  1. 실제 HTTP 헤더만큼 잘 지원되지 않습니다.
  2. 링크 된 리소스가 아닌 HTML 문서에 적용

src에 queryString을 추가하고 업데이트 된 버전을 릴리스 할 때만 변경할 수 있습니다.

<script src="test.js?v=1"></script>

이러한 방식으로 브라우저는 새 버전이 지정 될 때까지 캐시 된 버전을 사용합니다 (v = 2, v = 3 ...).


임의의 (또는 datetime 문자열)을 스크립트를 가리키는 URL에 쿼리 문자열로 추가 할 수 있습니다. 이렇게 :

<script type="text/javascript" src="test.js?q=123"></script> 

페이지를 새로 고칠 때마다 'q'값이 변경되었는지 확인해야합니다.

참고 URL : https://stackoverflow.com/questions/7413234/how-to-prevent-caching-of-my-javascript-file

반응형