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

时间:2011-06-14 15:26:39

标签: javascript css asp.net-mvc version-control

我正在开发一个拥有大量静态资源的RIA系统。

遗留系统在构建过程中重命名静态文件(带有版本号),并且有一个遍历所有页面(存储在旧数据库中)的进程,并更新链接中的文件名。

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

我正在考虑将版本号放入web.config,然后在本文中添加修改后的代码版本:http://www.codeproject.com/KB/aspnet/autojscssversion.aspx, - 然后让旧版进程管理所有静态的编号两个系统的资源。

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

我有点惊讶,虽然这一切都很笨重 - 有没有更好的方法?

2 个答案:

答案 0 :(得分:1)

确保浏览器下载最新版静态文件的常用方法是将查询字符串添加到URL中。

例如,您的应用会请求/scripts/common.js?version=4

之类的内容

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

答案 1 :(得分:1)

我不能说将静态资源调用切换到包含的文件是否足够好。这听起来非常简单,但是自从我走这条路线以来,我的维护开销几乎没有减少。每个页面都有一个更改。是的,在某些页面上可能没有使用的文件会有更多的开销,但在宏观方案中,它很小并且通过缓存来抵消。

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

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

相关问题