8

假设我想在动态生成的页面(特别是 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 中没有任何影响。有人试图实现同样的目标吗?难道我做错了什么?那应该工作吗?

4

3 回答 3

4

答案是:这种方法依赖于尚未实施的拟议标准(草案)(感谢Salman A指出这一点)。虽然如果它工作会很棒。

于 2012-06-27T14:09:47.503 回答
4

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

另请参阅:HTTP 标头样式表

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

现在我想我们必须等到 2020 年才能使用这个功能,这似乎是趋势。

于 2012-10-03T00:58:15.897 回答
0

对对对“草稿”..

反正..

如果你想看看如何在实践中使用它,这里有一个例子(取自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-featuresin chrome://flags
于 2015-10-20T11:28:37.483 回答