From 75f32647f67b39d603a26ba0c80fc69674ac06cf Mon Sep 17 00:00:00 2001 From: bwstudio Date: Mon, 7 Sep 2026 19:26:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(public):=20=E5=9B=BE=E6=A0=87=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=BC=98=E5=85=88=E8=BF=94=E5=9B=9E=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=20favicon=EF=BC=8C=E5=AD=97=E6=AF=8D=20SVG=20=E4=BB=85?= =?UTF-8?q?=E4=BD=9C=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _resolve_icon 的本地缓存命中顺序改为先查 .ico/.png/.jpg/.gif 再查 .svg, 避免已生成的字母头像(.svg)遮盖后续补入的真实 favicon 缓存文件。 --- applications/view/public/nav.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/view/public/nav.py b/applications/view/public/nav.py index dfa6df7..e8a40a6 100644 --- a/applications/view/public/nav.py +++ b/applications/view/public/nav.py @@ -343,13 +343,13 @@ def _resolve_icon(domain: str, letter: str): safe = _safe_name(domain) d = _icon_dir() # 1) 命中本地缓存(任意已知扩展名) - for ext in ('.svg', '.ico', '.png', '.jpg', '.jpeg', '.gif'): + for ext in ('.ico', '.png', '.jpg', '.jpeg', '.gif', '.svg'): p = os.path.join(d, safe + ext) if os.path.isfile(p): return p, _ICON_EXT_MIME.get(ext, 'application/octet-stream') # 2) 加锁后再次检查(避免并发重复拉取) with _lock_for(safe): - for ext in ('.svg', '.ico', '.png', '.jpg', '.jpeg', '.gif'): + for ext in ('.ico', '.png', '.jpg', '.jpeg', '.gif', '.svg'): p = os.path.join(d, safe + ext) if os.path.isfile(p): return p, _ICON_EXT_MIME.get(ext, 'application/octet-stream')