9

所以,我想为我的 css 和 js 文件添加版本控制。我想这样做的方法是将查询字符串附加到资产路径的末尾,这样

/foo/bar/baz.css

变成

/foo/bar/baz.css?version=1

这适用于代理和浏览器缓存,但是,我想知道 Akamai 是否会知道这是一个新文件并从源服务器重新请求它?我的假设是它会从原始服务器重新请求文件,但我想我会问是否有人确定。

4

3 回答 3

4

不完全的。这取决于 CDN 配置。查询字符串值通常不是缓存键的一部分。因此,在设置 CDN 交付配置时,请确保您明确添加选项以将查询字符串包含为缓存键的一部分。否则,由于缓存键不会根据查询字符串值(在本例中为资产版本)而变化,您最终会提供不一致的版本。

于 2014-05-13T21:56:42.043 回答
4

是的。它匹配所有 GET 请求的确切 URL。

于 2011-03-23T20:38:07.330 回答
0

我更喜欢有一个像“/css/DEVELOPER_BASE/foo/baz/style.css”这样的网址。

您的构建/部署脚本在 '/css/DEVELOPER_BASE/' 上进行全局查找并替换为 '/css/[version_number]/'

要完成这项工作,您有两个选择。

  1. 您的部署脚本将 css 文件从“/css/DEVELOPER_BASE/”复制到“/css/[version_number]/”
  2. 您的网络服务器为 '/css/[version_number]/' 为 '/css/DEVELOPER_BASE/' 做了一个别名(不是重定向)

这将使您不必担心浏览器和 CDN 如何处理查询参数。

于 2017-10-24T12:36:29.503 回答