爛筆頭筆記:favicon配置不是所有瀏覽器都兼容

本文出處:http://blog.csdn.net/chaijunkun/article/details/90205293,轉載請註明。由於本人不定期會整理相關博文,會對相應內容作出完善。因此強烈建議在原始出處查看此文。

一則故障告警

爲了保證服務正常運行,在所有應用系統中都接入了日誌收集系統,該系統還可以將一段時間內的錯誤信息聚合,發送故障告警。以下是告警內容:

[日誌監控]XX-mweb狀態碼500告警
你有1條延遲發送報警消息,最近一條是:
[2019-05-14 13:50:19]
nginx.m.somebusiness.com最近5分鐘內有狀態碼爲500日誌319條.
最近一條請求記錄爲:
URL:/favicon.ico
主機:192.168.0.1
參數:
狀態碼:500

詳細請看:http://short.cn/M4Gmznc

*注:告警日誌中涉及到敏感信息的內容已經做了脫敏處理

檢查頁面

通過日誌中反應的域名可以很明顯地看出,該錯誤是nginx日誌(日誌系統很明確地劃分nginx日誌和業務系統日誌使用不同域名),並非業務系統日誌。但是一個favicon.ico的請求怎麼會打到業務系統裏呢(nginx日誌很少單純出現500錯誤,一般是反向代理到業務系統時,由業務系統返回產生)?

在頁面中,head部分有明確的配置:

<link rel="shortcut icon" href="//x.shortimg.cn/business/2019/m/images/favicon.ico">

按照此配置,瀏覽器在頁面加載時使用的favicon應該採用這個上述配置纔對。後來進入日誌系統,查看造成這些錯誤的UA是哪些,發現絕大多數來源於這樣一個UA:

Mozilla/5.0 (Linux; Android 7.1.1; OPPO R11s Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 incapp/1.1+%28inc_android%3B9.10.0%3BFAcDIW0xtK-GggDvLvbA-L7iSIpoFl-qb4G_JUwc_xwKT14MCz4zWVtzk8oK0IuI%3B7.1.1%3BOPPO%2BR11s%3B79cef6477b23629a2c264fe8019232d1%29 inc_android/9.10.0 nettype/4g

也就是說這樣一個環境是不支持favicon設置的:
系統:Android 7.1.1
品牌型號:OPPO R11s
打開環境:(公司開發的移動端產品,內部版本號9.10.0)

解決方法

將該業務系統對應域名下的favicon.ico請求直接轉發到指定的地址下,從此世界安靜了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章