favicon を表示するのに何が良い物ないかなーと思って検索したがなかなか良い API は見つからず、
dankogai氏が作成したスクリプトを鯖にうpして使う事にした。xrea の鯖では O_SHLOCK を削除するだけで動いた。
スクリプトは以下のページにあります。thx.
404 Blog Not Found:perl - 任意のURIからfaviconを取得するAPI
以下変更点
1)デフォルトのfaviconを設定
2)O_SHLOCKの削除
修正箇所のコード
# 追加
our $default_favicon_uri = 'http://example.com/favicon/default_favicon.png';
# 途中省略
if ($favicon_uri){
print $q->redirect(-uri => $favicon_uri,
-status => 301,
-x_last_checked => scalar localtime $lastmod);
}else{
# 以下3行追加
print $q->redirect(-uri => $default_favicon_uri,
-status => 301,
-x_last_checked => scalar localtime $lastmod);
# print $q->header(-status => 404,
# -x_last_checked => scalar localtime $lastmod);
}
実行例
<ul>
<li><img src="https://api.sillca.com/favicon.pl/http://www.google.com/"><a href="http://www.google.com/">http://www.google.com/</a></li>
<li><img src="https://api.sillca.com/favicon.pl/http://www.yahoo.com/"><a href="http://www.yahoo.com/">http://www.yahoo.com/</a></li>
<li><img src="https://api.sillca.com/favicon.pl/http://www.bing.com/"><a href="http://www.bing.com/">http://www.bing.com/</a></li>
</ul>
単なるサイトリストでも favicon が表示されるとソレっぽくなって良いです。