Svn 进行CDN版本控制的最佳方法

Svn 进行CDN版本控制的最佳方法,svn,version,versioning,cdn,Svn,Version,Versioning,Cdn,我们目前有一个开发(dev)服务器和一个生产服务器,我们将很快开始使用CDN作为我们的静态资源。因此,我们希望实施最有效的版本控制系统,以满足以下要求: dev和prod将使用相同的设置 一旦提交/部署文件,就会反映文件更改 理想情况下,只有受影响的文件才能获得新版本 请记住,来自SVN的开发人员提交非常频繁,我们正在寻找一个自动化系统,该系统将负责版本控制,而不复制整个目录等 由于我们对使用CDN还不熟悉,因此我们很乐意就实现上述功能的最有效方式提出建议。一些框架,如Grails,具有可以为您

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

  • dev和prod将使用相同的设置
  • 一旦提交/部署文件,就会反映文件更改
  • 理想情况下,只有受影响的文件才能获得新版本
  • 请记住,来自SVN的开发人员提交非常频繁,我们正在寻找一个自动化系统,该系统将负责版本控制,而不复制整个目录等


    由于我们对使用CDN还不熟悉,因此我们很乐意就实现上述功能的最有效方式提出建议。

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

    如果您处于这样的环境中,那么这些插件非常棒,通常工作得非常好,但是如果不是这样,您可以做的最普遍的事情就是将一系列由预提交SVN钩子脚本触发的脚本放在一起。脚本需要处理已更改的文件的版本戳。根据您使用的框架,在代码中反映资源文件的名称会有更多的问题,但是您可以编写一个插件,根据无版本文件名模式匹配动态地找出问题所在,或者直接在代码中更新引用(从理论上讲,像
    sed
    awk
    这样的东西可以做到这一点,尽管可能需要一些令人印象深刻的脚本技巧)


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

    您在寻找一种方法吗要在cdn上对文件进行版本设置,或通过引用cdn的代码对链接到的文件进行版本设置,请参阅以下内容: