如何在smarty中自动控制css、js和图像文件的版本
像这样
<link rel="stylesheet" href="css/main.css" media="all"/>到这个
<link rel="stylesheet" href="css/main354435.css" media="all"/>发布于 2012-08-08 23:03:46
我想你需要这个来防止客户端缓存。最方便的方法(至少对我来说)是使用下面这样的东西:
<link rel="stylesheet" href="css/main.css?version=123456" media="all"/>这样,每次版本更改时,客户端的浏览器都会下载新版本
发布于 2012-08-09 18:04:50
我不会用smarty做这件事,版本控制应该在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"/>为你的项目正确地构建一个构建文件需要一些时间,但是一旦你建立了它,它就节省了大量的时间,而且你不需要太担心你的项目将在其上运行的服务器上的缓存条件。
https://stackoverflow.com/questions/11864554
复制相似问题