如果我使用git,如何实现缓存破坏?

时间:2011-09-02 08:47:57

标签: javascript html css templates url

<link rel="/style/style.css"/>

所以这是我的index.html。

如果我保存它,我想自动实现style.css?version = 3 ...所以这会破坏缓存

最简单的方法是什么?

2 个答案:

答案 0 :(得分:4)

如果您使用git,则可以使用git describe --tags --always获取当前版本。

如果在PHP中,您可以执行以下操作:

$currentVersion = `git describe --tags --always`

那么us $ currentVersion作为缓存破坏者:

<link href="/style/style.css?version=<?=$currentVersion?>">

当然:

  • 应该缓存命令的结果,至少一分钟,以防止对git命令的密集调用!
  • 确保该命令在GIT目录中启动

即使您不使用标签也会有效(感谢--always开关),但使用它们更好,所以$ currentVersion就像v2.1.3-c1a2f3e

答案 1 :(得分:-7)

使用javascript你可以写

<script type="text/javascript">
     document.write('<link rel="stylesheet" type="text/css" href="style.css?version=' + (new Date()).getTime() + '">');
</script>

如果您使用任何服务器端脚本,可以更轻松地完成。像`

这样的东西
<link href="/style/style.css?version=<?php echo time() ?>">`