开发者

Does Akamai pull from origin when query string parameters change for cached assets

开发者 https://www.devze.com 2023-02-19 02:44 出处:网络
So, I want to add versioning to my css and js files.The way I would like to do this is by appending a query string to the end of 开发者_如何学Gothe asset path so

So, I want to add versioning to my css and js files. The way I would like to do this is by appending a query string to the end of 开发者_如何学Gothe asset path so

/foo/bar/baz.css

Becomes

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

This will work for proxies and browser cache, however, I was wondering if Akamai will know this is a new file and re-request it from the origin server? My assumption would be that it would re-request the file from the origin server but figured I'd ask if anyone knew for sure.


Yes. It matches exact URLs for all GET requests.


Not quite. It depends on the CDN configuration. Query String values are usually not part of the cache-key. So, when setting up the CDN delivery config, make sure you explicitly add the option to include the Query String as part of the cache-key. Otherwise, you will end up serving inconsistent versions due to having a cache key that does not vary based on the query string value, in this case, the asset version.


I prefer to have a url like '/css/DEVELOPER_BASE/foo/baz/style.css'.

Your build/deploy scripts do a global find and replace on '/css/DEVELOPER_BASE/' with '/css/[version_number]/'

To make this work you then have two options.

  1. Your deploy script copies the css files from '/css/DEVELOPER_BASE/' to '/css/[version_number]/'
  2. Your web server does an alias (not redirect) for '/css/[version_number]/' to '/css/DEVELOPER_BASE/'

This will keep you from having to worry about how browsers and CDN's handle query parameters.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号