所以,我想为我的 css 和 js 文件添加版本控制。我想这样做的方法是将查询字符串附加到资产路径的末尾,这样
/foo/bar/baz.css
变成
/foo/bar/baz.css?version=1
这适用于代理和浏览器缓存,但是,我想知道 Akamai 是否会知道这是一个新文件并从源服务器重新请求它?我的假设是它会从原始服务器重新请求文件,但我想我会问是否有人确定。
所以,我想为我的 css 和 js 文件添加版本控制。我想这样做的方法是将查询字符串附加到资产路径的末尾,这样
/foo/bar/baz.css
变成
/foo/bar/baz.css?version=1
这适用于代理和浏览器缓存,但是,我想知道 Akamai 是否会知道这是一个新文件并从源服务器重新请求它?我的假设是它会从原始服务器重新请求文件,但我想我会问是否有人确定。
不完全的。这取决于 CDN 配置。查询字符串值通常不是缓存键的一部分。因此,在设置 CDN 交付配置时,请确保您明确添加选项以将查询字符串包含为缓存键的一部分。否则,由于缓存键不会根据查询字符串值(在本例中为资产版本)而变化,您最终会提供不一致的版本。
是的。它匹配所有 GET 请求的确切 URL。
我更喜欢有一个像“/css/DEVELOPER_BASE/foo/baz/style.css”这样的网址。
您的构建/部署脚本在 '/css/DEVELOPER_BASE/' 上进行全局查找并替换为 '/css/[version_number]/'
要完成这项工作,您有两个选择。
这将使您不必担心浏览器和 CDN 如何处理查询参数。