通过http标头添加favicon

时间:2012-06-27 13:43:54

标签: html http-headers favicon

假设我想在动态生成的页面上添加一个favicon(特别是一个ADF Faces页面,但这是无关紧要的)。我无法修改我生成的html的标签。 所以我尝试在servlet头中添加一个http-header。我希望我的标题与html head元素相同:

<link rel="shortcut icon" href="http://foo.com/favicon.ico">

我是这样添加的:

httpResponse.addHeader("Link", "<http://foo.com/favicon.ico>; rel=\"shortcut icon\"");

在我的浏览器中,我看到这个标题作为回应:

Link: <http://foo.com/favicon.ico>; rel="shortcut icon"

但不幸的是,这对IE或Chrome没有任何影响。有人试图达到同样的目的吗?难道我做错了什么?这应该有用吗?

3 个答案:

答案 0 :(得分:4)

答案是:这种方法依赖于尚未实现的提议标准(草案)(感谢Salman A指出这一点)。 虽然如果有效的话会很棒。

答案 1 :(得分:3)

是自2010年10月以来,链接标题已成为RFC 5988中已定义的标准,但我见过的link relation仅适用于样式表,仅适用于某些浏览器。

另见:HTTP Header Stylesheets

@dragn所建议的是完全可行的,并且在规范中为什么浏览器不采用是超出我的。还有一些其他有用的关系,如prefetch,bookmark和glossary等等。他们能做的最少的事情是通知用户链接存在并将其作为下拉菜单或菜单提供。也许插件是为了向浏览器供应商展示我们想要它做什么,因为它们似乎都很困惑。有什么建议吗?

现在我想我们必须等到2020年,这个功能才能成为现实。

答案 2 :(得分:0)

是的,是“草稿”..

反正..

如果你想看看如何使用 in-Practice ,这里有一个例子(取自icompile.eladkarako.com

<ifModule mod_headers.c>
  Header set Link <http://icompile.eladkarako.com/favicon.ico>; REL="shortcut icon"; TYPE="image/x-icon"
  Header set Link <http://icompile.eladkarako.com/favicon.ico>; REL="icon"; TYPE="image/x-icon"
  Header set Link <http://icompile.eladkarako.com/img/apple-touch-icon.png>; REL="apple-touch-icon"; TYPE="image/png"; sizes="316x316"
</ifModule>

它适用于当前的Chromium / Google Chrome / Google Canary,

(并确保在advance web-features中设置chrome://flags的开关