当查询字符串参数更改为缓存资产时,Akamai是否从原点开始提取

时间:2011-03-23 20:36:42

标签: javascript css caching akamai

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

/foo/bar/baz.css

变为

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

答案 2 :(得分: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 /'
  3. 执行别名(不是重定向)

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