From ed64eb9e76f91d74d48f3cf607ce60ea89953e66 Mon Sep 17 00:00:00 2001 From: AI Directory Platform Date: Tue, 8 Sep 2026 20:05:39 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B5=8F=E8=A7=88=E5=99=A8=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E9=AA=8C=E6=94=B6=E5=8F=91=E7=8E=B0=E7=9A=84=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移动端 (<640px) header 横向溢出 84px:语言切换器在 sm 以下隐藏,三站溢出归零 - 工具详情页 meta description 过短(36ch):改为 tagline+description 组合截断 155ch --- packages/core/src/kit/theme-header.tsx | 5 ++++- .../pages/[locale]/(marketing)/tools/[slug]/page.tsx | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/core/src/kit/theme-header.tsx b/packages/core/src/kit/theme-header.tsx index 1b5eb81..6026604 100644 --- a/packages/core/src/kit/theme-header.tsx +++ b/packages/core/src/kit/theme-header.tsx @@ -105,7 +105,10 @@ export function ThemeHeader({ )} - + {/* 语言切换器:小屏隐藏(避免 375-420px 视口撑破 header) */} +
+ +
diff --git a/packages/core/src/pages/[locale]/(marketing)/tools/[slug]/page.tsx b/packages/core/src/pages/[locale]/(marketing)/tools/[slug]/page.tsx index 8b638a2..62b2e89 100644 --- a/packages/core/src/pages/[locale]/(marketing)/tools/[slug]/page.tsx +++ b/packages/core/src/pages/[locale]/(marketing)/tools/[slug]/page.tsx @@ -130,11 +130,20 @@ export async function generateMetadata({ params }: ToolDetailPageProps) { const description = locale === "zh" && tool.descriptionZh ? tool.descriptionZh : tool.descriptionEn; + // meta description:tagline + 描述组合并截断到 ~155ch(SEO 最佳实践) + const metaDescBase = + [tool.taglineEn, description, tool.descriptionEn] + .filter(Boolean) + .join(". ") + .replace(/\.\s*\./g, ".") || `${t("subtitle")} - ${name}`; + const metaDescription = + metaDescBase.length > 155 ? `${metaDescBase.slice(0, 152)}...` : metaDescBase; + return generatePageMetadata({ locale, path: `/tools/${slug}`, title: `${name} - ${t("title")}`, - description: tool.taglineEn || description || `${t("subtitle")} - ${name}`, + description: metaDescription, ogImage: tool.coverImageUrl || tool.logoUrl || undefined, }); }