首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在smarty中获得css,js,图像文件的自动版本控制?

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

Stack Overflow用户
提问于 2012-08-08 20:28:30
回答 2查看 363关注 0票数 2

如何在smarty中自动控制css、js和图像文件的版本

像这样

代码语言:javascript
复制
 <link rel="stylesheet" href="css/main.css" media="all"/>

到这个

代码语言:javascript
复制
<link rel="stylesheet" href="css/main354435.css" media="all"/>
EN

回答 2

Stack Overflow用户

发布于 2012-08-08 23:03:46

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

代码语言:javascript
复制
<link rel="stylesheet" href="css/main.css?version=123456" media="all"/>

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

票数 2
EN

Stack Overflow用户

发布于 2012-08-09 18:04:50

我不会用smarty做这件事,版本控制应该在VCS中完成,这就是VCS的作用。与一个好的构建系统相结合,你会变得更胖。

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

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

在生成构建时,phings SvnLastRevisionTask会存储最新版本:

代码语言:javascript
复制
<svnlastrevision
   svnpath="/your/installation/svn.exe"
   repositoryurl="http://your/svn/repository/url/"
   propertyname="svn.lastrevision"/>

我使用ReplaceTokens来更改代码参数文件中的一个特殊变量##LASTREV##。在参数文件中使用它可以更容易地控制它,并且我的php代码只需要这个变量,而不需要在下面的示例中进行过滤。基本上,您只需过滤参数文件。

代码语言:javascript
复制
<filterchain>
  <replacetokens begintoken="##" endtoken="##">
    <token key="LASTREV" value="${svn.lastrevision}" />
  </replacetokens>
</filterchain>

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

代码语言:javascript
复制
<move file="css/main.css" 
      tofile="css/main${svn.lastrevision}.css" 
      overwrite="true"/>

为你的项目正确地构建一个构建文件需要一些时间,但是一旦你建立了它,它就节省了大量的时间,而且你不需要太担心你的项目将在其上运行的服务器上的缓存条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11864554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档