2010-01-31 2 views
7

누구든지 내 webapp를 업데이트하면 사용자가 최신 버전의 파일을 가져 오는 지 확인하는 방법을 설명 할 수 있습니까?캐시 된 JavaScript 및 CSS 파일을 다시로드하는 방법은 무엇입니까?

스크립트 및 CSS 파일 끝 부분에 동적 문자열 ?version=random을 추가하고 업데이트를 배포 할 때 변경해야합니까? 또는 여기에 일반적인 전략은 무엇입니까?

감사합니다. Boda Cydo.

답변

4

:-) URL을 만들 때 진수에 서식을 지정할 수 있습니다.

나는 개인적으로 내 파일의 Subversion 개정 번호를 사용하지만, 파일의 마지막 업데이트 타임 스탬프까지도 의미있는 것을 사용할 수 있습니다.

에 StackOverflow는 SVN 개정 번호를 사용 mtime 파일의 마지막 수정 시간입니다

<script type="text/javascript" src="http://sstatic.net/so/js/master.js?v=6180"> 
</script> 
+0

, 어떻게이 SVN 개정 번호는 액세스 할 수 있습니다? – skaffman

0

직접 언급했듯이 스타일 시트/스크립트 URL에 검색어 문자열을 추가하는 것은 캐시 된 버전이 '무효화'되는 시점을 제어 할 수있는 좋은 방법입니다.

임의의 문자열을 추가하는 대신 파일 시스템의 관련 파일의 마지막 수정 날짜를 사용합니다. 차가움 요인을 개선하기 위해, 당신은 숫자 형식으로 날짜를 변환 예, 당신이 언급하는 방식은 매우 일반적이며, 고체 방법입니다

<script type="text/javascript" src="script.js?v=1750493C88"></script> 
<link rel="stylesheet" type="text/css" href="style.css?v=1750493C88" /> 
1

내가 일반적으로 이미지, CSS 파일과 자바 스크립트 파일의 이름 끝에 ?mtime을 넣어.

파일이 변경 될 때마다 증가하는 버전 번호를 사용할 수도 있습니다. jQuery와 같은 공식 릴리스는 있지만 단순히 필요에 따라 변경되는 자신의 사이트 파일에 필요한 것보다 지루한 경향이있는 라이브러리에 적합합니다. 물론이 경우에도 버전 번호를 사용할 수는 있지만 불필요하게 지루하다는 것을 알기 쉽습니다 (유지해야하는 다른 것임).

4

오징어는 GET 매개 변수를 사용하여 파일을 캐시하지 않습니다. squid가 파일을 캐시하게하려면 script.2010-02-14.js와 같은 것을 사용해야합니다.

"그러나 더 나은 인 : mylogo.1.2.gif 또는 mylogo.gif V = 1.2 쿼리 문자열 와 회전 속도를 올린다 피, 인기 프락시 캐시의 혜택을 얻을 대신 파일 이름 자체를 레브?." 호기심에서

http://webcache.googleusercontent.com/search?q=cache:JhDnwSNN-BEJ:www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/+http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/&cd=1&hl=en&ct=clnk&gl=us&client=opera&source=www.google.com

관련 문제