Closed otofune closed 7 years ago
本来はスラッシュを含めて指定しなければならず、つまりこれはバグでもなんでもないのですが、企業のWebページでも (今回は http://www.star-domain.jp/price/ で発覚) 知らずのうちにやってしまうページがあり、またブラウザでは正常表示できる為、今回報告した次第です ですので、前述の解決案は本来の意味で相対的指定 (それぞれのページでfaviconを変更する) であれば逆効果に成ってしまいます。依って最もコストは高いですが、webページにiconやshortcut icon要素があった場合もHEADリクエストでチェックし、処理するという方式にするのが最も誤りがないかと思います
http://example.com/example/
(ここで最後がスラッシュで終わるのが重要です) というリンクをクロールした時、"favicon.ico"
(開始スラッシュがないのが重要です) という値がiconに入っているとします。 するとsummalyは src/general.ts#L97 にてURL.resolve('http://example.com/example/', 'favicon.ico')
を実行することになります。 この結果はhttp://example.com/favicon.ico
で有ることを期待したいのですが、http://example.com/example/favicon.ico
が返ってきてしまいます。 解決案としてURL.resolve(url.protocol + url.host, icon)
とすることで一定の解決が望めます。