import Banner from "@/components/banner/Banner"; import Category from "@/components/sidebar/Category"; import { getSiteSettings } from "@/utils/siteSettings"; import { notFound } from 'next/navigation'; import DynamicListPage from "@/components/common/DynamicListPage"; import { Suspense } from 'react'; import { getPageData, getAllSlugs } from "@/utils/data"; const LoadingSpinner = () => (
); export const revalidate = Number(process.env.JSITE_REVALIDATE_SECONDS) || 3600; export async function generateStaticParams() { const slugs = await getAllSlugs(); return slugs.map(slug => ({ slug: slug, })); } export async function generateMetadata({ params }) { const resolvedParams = await params; const slugArr = resolvedParams.slug; const { data, error, page_info } = await getPageData({ slug_list: slugArr, downloadFiles: false // Do not download files for metadata }); if (error) { return { title: error.title || 'Page Error', description: error.message || '', }; } if (Array.isArray(data) && page_info) { return { title: page_info.meta_title || page_info.title || '', description: page_info.meta_description || '', }; } return { title: data?.meta_title || data?.title || '', description: data?.meta_description || '', }; } export default async function DynamicPage({ params }) { const resolvedParams = await params; const slugArr = resolvedParams.slug; const siteSettings = await getSiteSettings(process.env.SITE_URL); const pageSize = Number(siteSettings.page_size) || 12; // 始终获取第一页的数据用于静态生成 const { data, error, total } = await getPageData({ slug_list: slugArr, page: 1, page_size: pageSize, downloadFiles: true // Download files for page rendering }); if (error) { notFound(); } const bannerComponentName = 'Banner-' + (slugArr[0] || 'home'); const categoryComponentName = 'Category-' + (slugArr[0] || 'home'); if (Array.isArray(data)) { const currentPath = '/' + (Array.isArray(slugArr) ? slugArr.join('/') : ''); const listColumns = 4; return ( <>
}>
); } else if (data) { return ( <>
{/* 图片和附加信息并排显示,响应式优化 */} {(data.image || data.subtitle) && (
{data.image && (
{data.title}
)} {data.subtitle && (
{data.subtitle}
)}
)} {/* Product Description 标题 */}
{data.additional_content && ( <> {/* Testing Report 标题 */}
)}
); } else { notFound(); } }