Files
novalon-website/src/app/(marketing)/news/[slug]/page.tsx
T
张翔 1bf22a8f95 fix(seo): 修复页面标题公司名重复与品牌名繁简体不一致问题
- 新增 COMPANY_INFO.displayName 属性用于页面标题和SEO元数据
- 统一所有页面 metadata 使用 displayName(简体"睿新致远")
- 视觉展示元素保留 shortName(繁体"睿新致遠"配合青柳隷書字体)
- 修复关于/联系/团队页面标题中公司名重复出现的问题
- 修复新闻ID从数字改为SEO友好slug
- 更新结构化数据使用完整公司名
- 修复ESLint报错:引号转义、组件displayName、any类型替换
2026-05-03 09:15:14 +08:00

38 lines
947 B
TypeScript

import { notFound } from 'next/navigation';
import { NEWS, COMPANY_INFO } from '@/lib/constants';
import { NewsDetailClient } from './NewsDetailClient';
export async function generateStaticParams() {
return NEWS.map((news) => ({
slug: news.id,
}));
}
export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }) {
const { slug } = await params;
const news = NEWS.find((n) => n.id === slug);
if (!news) {
return {
title: '新闻未找到',
};
}
return {
title: `${news.title} - ${COMPANY_INFO.displayName}`,
description: news.excerpt,
};
}
export default async function NewsDetailPage({ params }: { params: Promise<{ slug: string }> }) {
const { slug } = await params;
const news = NEWS.find((n) => n.id === slug);
if (!news) {
notFound();
}
const serializedNews = JSON.parse(JSON.stringify(news));
return <NewsDetailClient news={serializedNews} />;
}