【问题标题】:Adding favicon through a http header通过 http 标头添加 favicon
【发布时间】:2012-06-27 13:43:54
【问题描述】:

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

<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 中没有任何影响。有人试图实现同样的目标吗?难道我做错了什么?这应该有效吗?

【问题讨论】:

  • Link: 标头是 HTTP 标准的一部分吗?我找到了this,但它明确表示这是一个“草稿”。
  • 维基百科上有一个链接:RFC 5988
  • 哦...建议的标准...我没注意到:(

标签: html http-headers favicon


【解决方案1】:

答案是:此方法依赖于尚未实施的提议标准(草案)(感谢Salman A 指出这一点)。 虽然如果它有效,那就太好了。

【讨论】:

【解决方案2】:

是的,链接标头自 2010 年 10 月以来一直是 RFC 5988 中定义的标准,但我见过的唯一 link relation 用于样式表,并且仅在某些浏览器中使用。

另见:HTTP Header Stylesheets

@dragn 的建议是完全可行的,而且浏览器不采用的具体原因超出了我的范围。还有一些其他有用的关系,例如预取、书签和词汇表等等。他们至少可以通知用户存在链接并将其作为下拉菜单或菜单提供。也许需要一个插件来向浏览器供应商展示我们希望它做什么,因为他们似乎都感到困惑。有什么建议吗?

目前我想我们必须等到 2020 年才能使用此功能,这似乎是趋势。

【讨论】:

  • 2020 年了!知道这是否应该现在工作?
  • @zone117x 显然部分在 Google Chrome 中实现:crbug.com/58456
【解决方案3】:

是的,“草稿”..

无论如何..

如果你想看看如何使用它在实践中,这里有一个例子(取自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 中工作,

(并且如果您在chrome://flags 中设置advance web-features 的开关,请确定)

【讨论】:

  • 在当前版本的 Chrome 中似乎不起作用(2016 年 9 月)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 2017-06-15
  • 1970-01-01
  • 2012-08-14
相关资源
最近更新 更多