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

时间:2010-09-30 22:20:28

标签: caching versioning static-content

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

<link rel="stylesheet" type="text/css" href="http://sstatic.net/stackoverflow/all.css?v=9ea1a272f146">

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

此类版本的缺点是什么?

1 个答案:

答案 0 :(得分: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

中的评论中发现了这些内容

受此影响的用户百分比应该非常低。我已经使用了这种技术很长一段时间了,但仍然这样做。