拒绝使用查询字符串来版本化静态文件?

Jon*_*nes 6 versioning caching static-content

似乎为了强制用户刷新缓存的静态文件(例如,.css,.js),一些站点(例如,stackoverflow.com)将查询字符串附加到文件的末尾.例如:

<link rel="stylesheet" type="text/css" href="http://sstatic.net/stackoverflow/all.css?v=9ea1a272f146">
Run Code Online (Sandbox Code Playgroud)

我认为这是一个好主意,我也倾向于开始这样做.但是,我听说有缺点,例如代理不能正确缓存文件,如果存在查询字符串.

这种版本控制的缺点是什么?

Laz*_*z75 4

我只知道一个缺点:代理缓存(正如你所说):

http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

http://paulirish.com/2010/announcing-html5-boilerplate/#comment-34976

(我从http://www.html5boilerplate.com的评论中发现了这些)

不过,受此影响的用户比例应该非常低。我已经使用这种技术有一段时间了,而且仍然如此。