管理静态资源的版本控制的方法:javascript/css/html文件等

管理静态资源的版本控制的方法:javascript/css/html文件等,javascript,css,asp.net-mvc,version-control,Javascript,Css,Asp.net Mvc,Version Control,我正在研究一个RIA系统,它有大量的静态资源 旧版系统在生成过程中重命名静态文件(具有版本号),并有一个进程运行于所有页面(存储在旧版数据库中)并更新链接中的文件名 现在我们正在运行一个Asp.NETMVC应用程序。由于两个系统共享静态资源,情况变得更加复杂 我正在考虑将版本号放入web.config,然后添加本文中代码的修改版本:,-然后让遗留进程管理两个系统的所有静态资源的编号 有没有人找到更好的方法来管理这类事情 尽管如此,我还是有点惊讶——还有更好的方法吗?确保浏览器下载最新版本的静态文

我正在研究一个RIA系统,它有大量的静态资源

旧版系统在生成过程中重命名静态文件(具有版本号),并有一个进程运行于所有页面(存储在旧版数据库中)并更新链接中的文件名

现在我们正在运行一个Asp.NETMVC应用程序。由于两个系统共享静态资源,情况变得更加复杂

我正在考虑将版本号放入web.config,然后添加本文中代码的修改版本:,-然后让遗留进程管理两个系统的所有静态资源的编号

有没有人找到更好的方法来管理这类事情


尽管如此,我还是有点惊讶——还有更好的方法吗?

确保浏览器下载最新版本的静态文件的一种常见方法是在URL上添加查询字符串

例如,您的应用程序将请求类似于
/scripts/common.js?version=4
的内容


这可能会降低构建过程的复杂性,因为在构建过程中不需要重命名任何文件。然后,您可以简单地将构建/版本号放在配置文件中,并在运行时更改所有URL以添加版本查询字符串。

关于将静态资源调用切换到包含的文件中,我说的还不够好。这听起来非常简单,但自从我走这条路线以来,我已经将维护开销削减到几乎为零。一个改变就能修复每一页。是的,加载某些页面上可能不会用到的文件会有更多的开销,但在总体方案中,它很小,并且通过缓存来抵消

从scheme的角度来看,我有一个命名约定,即文件的前缀是代码库(jquery、themeroller等),后跟一个点,加上脚本的名称,后跟一个点和js

此外,尽可能充分利用CDN托管的代码。谷歌和微软通过CDN托管了几个项目,这些项目将比大多数人的服务器更快地加载给用户。它还可以在服务器之间分配HTTP连接,这在理论上也可以提供轻微的性能提升。谷歌有一些独特的策略来处理CDN托管文件的版本控制,这也可能非常方便。一个缺点是,CDN托管的代码仅适用于JQuery等主要项目,当您使用了许多其他高质量脚本中的一个时,这对您没有帮助