2011-09-02 2 views
-2
<link rel="/style/style.css"/> 

그래서 내 index.html입니다. 내가 저장하면git을 사용하면 캐시 버스터를 어떻게 구현합니까?

, 정말이 캐시

그렇게 할 수있는 가장 쉬운 방법은 무엇입니까는 검거 ... 자동으로있는 style.css? 버전 = 3을 구현하려면?

+3

git는 어디에 적합합니까? – tpower

+1

자바 스크립트는 어디에 적합합니까? –

+1

템플릿은 어디에 적합합니까? –

답변

-7

당신은 당신이 어떤 서버 측 스크립트를 사용하는 경우

<script type="text/javascript"> 
    document.write('<link rel="stylesheet" type="text/css" href="style.css?version=' + (new Date()).getTime() + '">'); 
</script> 

을 쉽게 수행 할 수 있습니다 쓸 수있는 자바 스크립트 사용. 당신은 자식을 사용하는 경우

<link href="/style/style.css?version=<?php echo time() ?>">` 
+7

이렇게하면 모든 요청을 강제로 업데이트합니다. 이상적인 캐시 버스터는 파일이 변경된 경우에만 적용되어야합니다. 그 이유는 사용자가 git 리비전 태그 (내가 찾고있는 태그)를 사용하도록 요청하는 이유입니다. 그래도 요청마다 다시로드하기를 원한다면 무작위로 사용하지 마십시오. 더 나은 옵션은 항상 다를 것이기 때문에 시간을 사용하는 것입니다. 무작위로 복제본을 만들 수는 있지만, 가능하지는 않더라도 여전히 시간을 사용하는 것이 훨씬 간단합니다. 자바 스크립트에서는 PHP에서'(새 Date()). getTime()'과 간단히'time()'입니다. – six8

4

, 현재 버전을 얻을 git describe --tags --always를 사용할 수있는`처럼 뭔가.

PHP에서, 당신이 뭔가 같이 할 수 있다면 : 물론

<link href="/style/style.css?version=<?=$currentVersion?>"> 

: 캐시 버스터로

$currentVersion = `git describe --tags --always` 

다음 US $ CurrentVersion을을

  • 당신 해야 git com에 대한 집중적 인 호출을 방지하기 위해 명령의 결과를 적어도 1 분 동안 캐시하십시오. 필수!
  • 명령이 GIT 디렉토리에서 시작되어 있는지 확인

당신이합니다 (--always 스위치 덕분에) 태그를 사용하지 않아도에서 그것은 작동하지만, 그들을 사용하는 좋네요 $ CurrentVersion을 것 때문에 v2.1.3-c1a2f3e과 같아야합니다.

관련 문제