当网站无法访问互联网时如何从 url 获取图标

How to get favicon from url when website has no access to the internet

如何在不使用 Google S2 转换器或c#/asp.net?

中的其他内容

我是内部 Web 应用程序的开发人员;我们在我们的一个页面中生成一个 table 和动态 link 到其他内部网站。我们不想从内部网站下载所有可能的图标,并 link 它们在 table 中。有没有办法从页面动态获取图标?

示例:

<table>
@foreach (var mylink in Model.links) 
{
   var faviconOfPage = //Get Url of favicon > example: favicon of subpage.mycompany.com
   <tr>
       <td><a href="@(mylink.url).ToString()">@mylink.name</a></td>
       <td><img src="@faviconOfPage"></td>
   </tr>
}
</table>

注意: 请求的站点是内部站点:外部无法访问!

谢谢你帮助我!

可以通过两种方式提供网站图标:约定(位于站点根部的 /favicon.ico)或通过 <link rel="shortcut icon" /> 元素。

因为每个页面都可能是后者,所以你需要请求并解析每个页面以查看是否存在 <link> 元素,如果存在,则下载 [=13] 指定的文件=] 属性。如果没有,您可以从主机下载/favicon.ico

由于您需要在每个页面上执行此操作,并且每个请求可能有所不同,因此您将需要一些缓存。您不能为包含 N 个链接的 Web 应用程序的每个页面请求和解析 N 个页面,因为这会使您的应用程序非常慢。

因此创建某种后台作业来处理您的链接,下载它们的网站图标并以某种方式存储它们,以便您可以将图标与链接相关联。