如何在smarty中获取css,js,图像文件的自动版本控制



如何在smarty中获取css,js,图像文件的自动版本控制?

喜欢这个

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

对此

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

我想你需要这个来防止客户端缓存。最方便的方法(至少对我来说)是使用以下内容:

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

这样,每次版本更改时,客户端的浏览器都会下载新版本

我不会用聪明的人这样做,版本控制应该在 VCS 中完成,这就是 VCS 的用途。结合一个好的构建系统,你会变得更胖。

我通常的项目工作流程如下所示:

使用 phing 来生成你的构建,我将解释与 Subversion 的组合,但这也可以适应其他 CVS。

生成构建时,phings SvnLastRevisionTask存储最后一个修订版本:

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

我使用 ReplaceTokens 更改代码参数文件中的特殊变量##LASTREV##。在参数文件中使用它可以更轻松地控制它,我的 php 代码只需要变量,而无需使用以下示例进行过滤。您基本上只需要过滤参数文件。

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

然后移动所有需要此编号的文件(MoveTask):

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

项目正确构建构建文件需要一些时间,但是一旦您设置了它,它就可以节省大量时间,并且您无需太担心运行项目的服务器上的缓存条件。

最新更新