进行 CDN 版本控制的最佳方法
Posted
技术标签:
【中文标题】进行 CDN 版本控制的最佳方法【英文标题】:Best way to do CDN Versioning 【发布时间】:2011-07-01 16:19:47 【问题描述】:我们目前有一个开发(开发)服务器和一个生产服务器,我们很快就会开始使用 CDN 来存储我们的静态资源。因此,我们希望实现满足以下要求的最有效的版本控制系统:
-
dev 和 prod 将使用相同的设置
文件更改会在我们提交/部署文件后立即反映出来
理想情况下,只有受影响的文件才能获得新版本
请记住,来自我们 SVN 的开发提交非常频繁,我们正在寻找一个自动化系统来处理版本控制,而无需复制整个目录等。
由于我们是使用 CDN 的新手,因此希望获得有关实施上述方法的最有效方法的建议。
【问题讨论】:
您是否正在寻找一种方法来对文件进行版本控制在 CDN 上,或者寻找一种方法来对从 引用 CDN 的代码链接到的文件进行版本控制? 参考这个:***.com/questions/9509069/versioning-in-a-cdn 【参考方案1】:一些框架,如 Grails,有插件可以为您处理静态资源版本控制,负责将版本命名的文件正确链接到您使用文件的位置,并且只调整已更改文件的版本。
如果您在这样的环境中,这些插件非常棒,并且通常工作得很好,但如果不是,您可以做的最普遍适用的事情就是将一系列脚本放在一起,这些脚本由 pre-提交 SVN 挂钩脚本。脚本需要负责对已更改的文件进行版本标记。根据您使用的框架,在代码中反映资源文件的名称会更有问题,但是您可以编写一个插件,可以根据非版本化的文件名即时计算出来模式匹配,或者直接在代码中直接更新引用(理论上,sed
或 awk
可以做到这一点,尽管它可能需要一些令人印象深刻的脚本技能)
因此,最好的解决方案是为您的框架找到一个可以为您透明地处理它的插件。下一个最佳选择是一系列预提交钩子脚本,它们对更改的文件进行版本控制,然后搜索/替换您的代码库以查找需要更新这些文件名并进行更改的地方。
【讨论】:
以上是关于进行 CDN 版本控制的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章