【问题标题】:js & css versioningjs & css 版本控制
【发布时间】:2011-10-11 08:45:38
【问题描述】:

知道我可以对 js 和 css 文件进行版本控制

选项 1:

myJavaScript.js?v=#myVersionNumber#
myCSS.css?v=#myVersionNumber#

,这将使客户端做一个有条件的 GET 请求,最好的情况是得到一个 304 响应。我可以通过不同的版本控制策略来消除这个 http 请求,比如

选项 2:

myJavaScript.#myVersionNumber#.js
myCSS.#myVersionNumber#.css

我想知道是否有任何充分的理由(假设两个选项具有相同的可维护性),这将使我继续使用 Option1。

感谢您的帮助。

【问题讨论】:

  • 许多框架等旨在能够轻松地从查询字符串中检索信息。除此之外,我不知道有任何好处。基本上更广泛的采用。

标签: javascript asp.net css caching versioning


【解决方案1】:

我认为您的版本控制不如控制缓存多。使用第二种方法时,我会担心在源代码控制系统中存储多个文件,如果您存储一个文件,它将累积历史记录并且可以更轻松地管理。然后,您可以通过更改 url 中的参数来释放新文件。

【讨论】:

  • 源代码控制是一个很好的附加视角
  • 我同意您的 cmets 关于缓存控制的看法。我知道如果没有正确实施,选项 2 可能在源代码管理中有多个文件。
【解决方案2】:

这里有一篇文章可以帮助您解决这个问题...

Automatically Version Your CSS and JavaScript Files

这段代码在php中,在您网站的.htaccess文件中进行了一些修改,可能需要多加注意,否则您的网站可能会崩溃。

【讨论】:

    【解决方案3】:

    不是最简单的选项 myJavascript-1.js 吗?而且,只需在文件名和每次修改文件时加载它的源中添加该数字?不需要查询字符串。当您发布新版本时,缓存总是会被破坏。

    有时有理由让旧版本仍然可用,以避免具有缓存 HTML 页面的客户端在几个不同的文件中混合旧版本和新版本,这使得新旧版本都可以轻松地存在于文件系统中同时(如果需要)。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 2010-11-11
      • 2011-06-18
      相关资源
      最近更新 更多