어떻게 smarty에서 CSS, JS, 이미지 파일에 대한 자동적 인 버전을 얻으려면? 이smarty에서 css, js, 이미지 파일의 자동 버전을 얻는 방법은 무엇입니까?
<link rel="stylesheet" href="css/main354435.css" media="all"/>
어떻게 smarty에서 CSS, JS, 이미지 파일에 대한 자동적 인 버전을 얻으려면? 이smarty에서 css, js, 이미지 파일의 자동 버전을 얻는 방법은 무엇입니까?
<link rel="stylesheet" href="css/main354435.css" media="all"/>
이
<link rel="stylesheet" href="css/main.css" media="all"/>
같은
난 당신이 클라이언트 측 캐싱을 방지하기 위해이 필요한 가정합니다. 가장 편리한 방법은 (나를 위해, 적어도) 같은 것을 사용하는 것입니다
<link rel="stylesheet" href="css/main.css?version=123456" media="all"/>
이 길을마다 버전 변경, 고객의 브라우저 새 버전을 다운로드합니다
나는 않을 것 멋지게 처리하면 버전 관리가 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
)를 필요로하는 모든 파일을 이동 많은 시간을 절약 할 수 있으며 프로젝트가 실행될 서버의 캐싱 조건에 대해 너무 걱정할 필요가 없습니다.
이것을 자동화하려면 파일이 변경 될 때 자동으로 버전을 업데이트하려면 href = "css/main.css? version = {@ filemtime : css/main.css}와 같은 것을 사용할 수 있습니다. – JochenJung