From 1290bca7d7b8d315903b79e80072879cf9849e6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E6=A0=91?= Date: Sun, 18 Jan 2026 01:54:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(Footer):=20=E6=B7=BB=E5=8A=A0=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在Footer组件中新增服务器图标显示逻辑,根据服务器类型显示对应的图标(ESA、EdgeOne、Cloudflare)。同时添加了三个SVG图标文件用于展示不同服务器的标识。当服务器类型匹配时,隐藏文字并显示对应图标,否则显示默认文字“未知”。 --- public/cdn/Hosted-Cloudflare-#F48120.svg | 1 + public/cdn/Hosted-ESA-#FF6A00.svg | 1 + public/cdn/Hosted-EdgeOne-#00a3ff.svg | 1 + src/components/Footer.astro | 36 ++++++++++++++++++++++-- 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 public/cdn/Hosted-Cloudflare-#F48120.svg create mode 100644 public/cdn/Hosted-ESA-#FF6A00.svg create mode 100644 public/cdn/Hosted-EdgeOne-#00a3ff.svg diff --git a/public/cdn/Hosted-Cloudflare-#F48120.svg b/public/cdn/Hosted-Cloudflare-#F48120.svg new file mode 100644 index 000000000..8d364ec7f --- /dev/null +++ b/public/cdn/Hosted-Cloudflare-#F48120.svg @@ -0,0 +1 @@ +Hosted: CloudflareHostedCloudflare \ No newline at end of file diff --git a/public/cdn/Hosted-ESA-#FF6A00.svg b/public/cdn/Hosted-ESA-#FF6A00.svg new file mode 100644 index 000000000..c9fa31051 --- /dev/null +++ b/public/cdn/Hosted-ESA-#FF6A00.svg @@ -0,0 +1 @@ +Hosted: ESAHostedESA \ No newline at end of file diff --git a/public/cdn/Hosted-EdgeOne-#00a3ff.svg b/public/cdn/Hosted-EdgeOne-#00a3ff.svg new file mode 100644 index 000000000..ccf6d7468 --- /dev/null +++ b/public/cdn/Hosted-EdgeOne-#00a3ff.svg @@ -0,0 +1 @@ +Hosted: EdgeOneHostedEdgeOne \ No newline at end of file diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 39d68dfca..84ad75062 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -79,11 +79,43 @@ try { valueSpan.innerText = '检测中...'; div.appendChild(valueSpan); - return { div, valueSpan }; + const iconImg = document.createElement('img'); + iconImg.className = 'server-icon h-5 ml-1 hidden'; + iconImg.alt = 'Server Icon'; + div.appendChild(iconImg); + + return { div, valueSpan, iconImg }; } function updateEntryDisplay(elements, server) { - elements.valueSpan.innerText = server || "未知"; + const { valueSpan, iconImg } = elements; + + if (server) { + const serverLower = server.toLowerCase(); + let iconSrc = null; + + if (serverLower.includes('esa')) { + iconSrc = '/cdn/Hosted-ESA-#FF6A00.svg'; + } else if (serverLower.includes('edgeone')) { + iconSrc = '/cdn/Hosted-EdgeOne-#00a3ff.svg'; + } else if (serverLower.includes('cloudflare')) { + iconSrc = '/cdn/Hosted-Cloudflare-#F48120.svg'; + } + + if (iconSrc) { + iconImg.src = iconSrc; + iconImg.classList.remove('hidden'); + valueSpan.classList.add('hidden'); + } else { + valueSpan.innerText = server; + iconImg.classList.add('hidden'); + valueSpan.classList.remove('hidden'); + } + } else { + valueSpan.innerText = "未知"; + iconImg.classList.add('hidden'); + valueSpan.classList.remove('hidden'); + } } async function checkServer(url) {