Skip to content

feat: 设置页可上传站点图标,含 iOS 主屏幕图标 - #94

Merged
stqfdyr merged 11 commits into
mainfrom
feat/site-favicon
Oct 6, 2026
Merged

stqfdyr merged 11 commits into
mainfrom
feat/site-favicon

Conversation

@stqfdyr

@stqfdyr stqfdyr commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

设置页「站点」卡片新增「站点图标」:选好图片即保存并生效,「用主题自带的」同样立即生效,不经过「保存站点设置」。未设置时,预览框标「默认」并显示主题自带的图标。

  • 面板在浏览器里由同一张图生成两份:标签页图标(SVG 原样保留,其余缩到 64 px PNG)和 iOS 书签与主屏幕用的 180 px 白底 PNG(细节太多、超过 20 KiB 时改用 JPEG)。原图大小不限。
  • 存为设置项 favicon 与 touch_icon,随数据库备份一起走,每份上限 20 KiB。
  • 设置后 /favicon.svg、/favicon.ico、/admin/favicon.svg 返回标签页图标,/apple-touch-icon.png、/apple-touch-icon-precomposed.png、/admin/apple-touch-icon.png 返回 iOS 图标,换主题也保留;未设置时行为不变。带 ?theme 时始终返回主题自带的那份,供面板预览。
  • 返回页面 HTML 时,给其中引用的 /favicon.svg、/apple-touch-icon.png(及后台的两个)加上版本号,取该路径实际返回内容的 ETag:换站点图标、换主题或主题升级换了图标,网址都会跟着变。Chrome 在普通跳转时不会重新请求已知网址的标签页图标,网址不变就一直显示旧图标。
  • 后台入口 /admin、/admin/ 改由 hub 重定向到 /admin/nodes(保留查询参数),不再由面板加载后改写地址:Chrome 把标签页图标记在图标到达时的页面网址下,跳转一开始就先显示记住的那个;面板先改写地址,入口网址就一直记着旧图标,每次进入后台都闪一下。GitHub 登录成功或失败都直接回到 /admin/nodes,不多绕一次。
  • 响应类型按文件内容判断,带 ETag 与 no-cache;另加 Content-Security-Policy: sandbox 和 nosniff,直接打开 SVG 时其中的脚本不会在站点源下执行。
  • 后台加 180 px 的 apple-touch-icon.png,iOS 收藏或添加到主屏幕时有图标。
  • 「GitHub 代理」的说明收进标签旁的问号弹窗。
  • 字段下方的提示文字只在标点和空格处断行,不再把一个词拆在两行。

@stqfdyr stqfdyr changed the title feat: 设置页可上传站点图标 feat: 设置页可上传站点图标,含 iOS 主屏幕图标 Oct 5, 2026
@stqfdyr
stqfdyr merged commit 2e677f0 into main Oct 6, 2026
1 check passed
@stqfdyr
stqfdyr deleted the feat/site-favicon branch October 6, 2026 03:32
stqfdyr added a commit to monitor-probe/monitor-theme-default that referenced this pull request Oct 6, 2026
- 页面切到后台时断开实时推送、不发请求;回到前台立即拉一次节点列表并重新连接。手机把后台页面挂起时会悄悄掐断连接,此前切回来要么停在旧数据上,要么等 5 秒重连;挂起前发出的请求的结果一律丢弃,不会在恢复后报错。实时网速的曲线在回到前台或重连后重新开始。
- 实时推送 10 秒没有数据时提示「实时数据中断,正在重新连接」并重连。
- 加 180 px 的 `apple-touch-icon.png`,iOS 收藏和添加到主屏幕时有图标。hub 设置了站点图标时,由 hub 用站点图标回答这个路径(monitor-probe/monitor#94)。
- README 的路由说明补上:按路径放行的反代或 WAF 要放行 `/favicon.svg` 和 `/apple-touch-icon.png`。
stqfdyr added a commit to monitor-probe/monitor-theme-serverstatus that referenced this pull request Oct 6, 2026
- 页面切到后台时断开实时推送、不发请求;回到前台立即拉一次节点列表并重新连接。手机把后台页面挂起时会悄悄掐断连接,此前切回来要么停在旧数据上,要么等 5 秒重连;挂起前发出的请求的结果一律丢弃,不会在恢复后报错。
- 实时推送 10 秒没有数据时提示「实时数据中断,正在重新连接」并重连。
- 加 180 px 的 `apple-touch-icon.png`,iOS 收藏和添加到主屏幕时有图标。hub 设置了站点图标时,由 hub 用站点图标回答这个路径(monitor-probe/monitor#94)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant