2012-08-08 3 views

답변

2

<link rel="stylesheet" href="css/main.css" media="all"/> 

같은

난 당신이 클라이언트 측 캐싱을 방지하기 위해이 필요한 가정합니다. 가장 편리한 방법은 (나를 위해, 적어도) 같은 것을 사용하는 것입니다

<link rel="stylesheet" href="css/main.css?version=123456" media="all"/> 

이 길을마다 버전 변경, 고객의 브라우저 새 버전을 다운로드합니다

+4

이것을 자동화하려면 파일이 변경 될 때 자동으로 버전을 업데이트하려면 href = "css/main.css? version = {@ filemtime : css/main.css}와 같은 것을 사용할 수 있습니다. – JochenJung

1

나는 않을 것 멋지게 처리하면 버전 관리가 VCS에서 수행되어야합니다. 즉 VCS가 필요합니다. 좋은 빌드 시스템과 함께하면 더 잘 살 수 있습니다. 당신의 빌드 생성

사용 phing, 나는 Subversion와 조합을 설명 할 것이다, 그러나 이것은 너무 다른 CVS에 적용 할 수 있습니다 :

내 일반적인 프로젝트 워크 플로우는 다음과 같습니다.

<svnlastrevision 
    svnpath="/your/installation/svn.exe" 
    repositoryurl="http://your/svn/repository/url/" 
    propertyname="svn.lastrevision"/> 

나는 내 코드의 매개 변수 파일 내에서 특별한 변수 ##LASTREV##을 변경 ReplaceTokens를 사용

빌드를 생성하는 동안은, SvnLastRevisionTask 저장은 최종 개정을 phings. 매개 변수 파일에서 그것을 사용하면 쉽게 제어 할 수 있으며, PHP 코드는 다음 예제로 필터링 할 필요없이 변수 만 필요로합니다. 기본적으로 매개 변수 파일을 필터링해야합니다. 당신이 그것을 설정하면, 그것은 제대로 프로젝트의 빌드 파일을 만드는 데 약간의 시간이 소요

<move file="css/main.css" 
     tofile="css/main${svn.lastrevision}.css" 
     overwrite="true"/> 

:하지만,

<filterchain> 
    <replacetokens begintoken="##" endtoken="##"> 
    <token key="LASTREV" value="${svn.lastrevision}" /> 
    </replacetokens> 
</filterchain> 

그런 다음이 번호 (MoveTask)를 필요로하는 모든 파일을 이동 많은 시간을 절약 할 수 있으며 프로젝트가 실행될 서버의 캐싱 조건에 대해 너무 걱정할 필요가 없습니다.

관련 문제