做CDN版本控制的最佳方法

时间:2011-02-22 01:16:21

标签: svn version versioning cdn

我们目前有一个开发(dev)服务器和一个生产服务器,我们很快就会开始使用CDN来获取我们的静态资源。因此,我们希望实现最有效的版本控制系统,以满足以下要求:

  1. dev和prod将使用相同的设置
  2. 文件更改会在我们提交/部署文件后立即反映
  3. 理想情况下,只有受影响的文件才能获得新版本
  4. 请记住,我们的SVN中的dev提交非常频繁,我们正在寻找一个自动化系统来处理版本控制而不复制整个目录等。

    因为我们不熟悉使用CDN,所以会喜欢有效实施上述方法的建议。

1 个答案:

答案 0 :(得分:0)

某些框架(如Grails)具有可以为您处理静态资源版本控制的插件,负责将版本命名的文件正确链接到您使用该文件的位置,并且只会碰撞已更改的文件版本。

如果您处于这样的环境中,那些插件非常棒并且通常可以很好地工作,但如果没有,您可以做的最普遍适用的事情就是将一系列脚本组合在一起,这些脚本会被预先触发提交SVN钩子脚本。脚本需要处理已更改的文件的版本标记。根据您使用的框架,反映代码中资源文件的名称会更有问题,但您可以根据非版本化文件名编写一个可以动态计算出来的插件模式匹配,或者直接在代码中更新引用(类似sedawk这样做,理论上可以做到这一点,虽然它可能需要一些令人印象深刻的脚本技能)

因此,最好的解决方案是为您的框架找到一个可以透明地处理它的插件。下一个最佳选择是一系列预提交钩子脚本,它们对更改的文件进行版本化,然后在需要更新这些文件名并进行更改的地方搜索/替换您的代码库。