favicon - 如何强制图标刷新

  显示原文与译文双语对照的内容

我有一个使用它自己的tomcat在本地运行的Grails应用程序,我刚刚改变了一个新的Prototype 。 问题是我在任何浏览器中都看不到它。 旧的图标图标出现,或者我根本得不到图标,但我的新图标。 我不认为这本身是一个Grails问题,更多的是图标图标。

图标图标应该发生什么? 他们怎么工作? 我的浏览器里有很多书签,它们有错误的图标,它们似乎不会刷新。 如何强制服务器/浏览器停止 cacheing? 总是缓存它们是很愚蠢的,因为它们通常只有 16 x16. 为什么不上传每次访问页面,这不是一个巨大的开销。

时间:

要刷新你的站点图标,你可以强制浏览器使用链接标签和你的文件名中的QueryString 下载一个新版本。 这在生产环境中尤其有用,以确保用户得到更新。


<link rel="shortcut icon" href="http://www.yoursite.com/favicon.ico?v=2"/>

如果你使用 PHP,你也可以使用图标图标的MD5-Hash作为一个 QueryString:


<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico')?>"/>

这样图标图标就会在改变时总是刷新。

当你从谷歌请求图标时,你可以看看响应头。


Last-Modified: Fri, 09 Jan 2009 16:35:02 GMT
Date: Thu, 01 Dec 2010 00:00:01 GMT
Expires: Fri, 01 Dec 2011 00:00:01 GMT
Cache-Control: public, max-age=31536000
Age: 7

如果你设置了一个expires过期: "在响应上,客户端浏览器将在该时间戳之后 re-request icon 。 做积极开发时,可以设置到期时间戳在未来一两秒钟,和总是拿这个,尽管这是一个糟糕的长期计划。

...