fix: NAV头像session未同步导致不显示 + 图片加载失败回退首字符

- Validate中同步DB最新头像/用户名/角色到session,解决上传头像后NAV仍不显示的问题
- NAV模板img增加onerror回退,图片加载失败时自动显示用户名首字符
This commit is contained in:
2026-05-31 17:08:00 +08:00
parent 9fe87a7003
commit 6f74643227
2 changed files with 7 additions and 1 deletions

View File

@ -79,6 +79,11 @@ func (m *Manager) Validate(sid string) (*Session, error) {
return nil, nil
}
// 同步 DB 最新字段(头像/用户名/角色等可能已变更)
s.Avatar = user.Avatar
s.Username = user.Username
s.Role = user.Role
// 滑动窗口续期
s.Touch()
if err := m.store.Set(s); err != nil {

View File

@ -20,7 +20,8 @@
<li class="nav-avatar-wrapper">
<a href="/space" class="nav-avatar-link">
{{if .Avatar}}
<img src="{{.Avatar}}" alt="" class="nav-avatar">
<img src="{{.Avatar}}" alt="" class="nav-avatar" onerror="this.style.display='none';this.nextElementSibling.style.display='flex'">
<span class="nav-avatar nav-avatar-default" style="display:none">{{substr .Username 0 1}}</span>
{{else}}
<span class="nav-avatar nav-avatar-default">{{substr .Username 0 1}}</span>
{{end}}