@@ -6,15 +6,14 @@ function getApiBaseUrl(): string {
66 return process . env . INTERNAL_API_BASE_URL || "http://localhost:8080/api" ;
77}
88
9- async function getPost ( slug : string ) : Promise < PostDetail | null > {
9+ async function getPost ( id : string ) : Promise < PostDetail | null > {
1010 try {
11- const response = await fetch ( `${ getApiBaseUrl ( ) } /posts/${ slug } ` , {
11+ const response = await fetch ( `${ getApiBaseUrl ( ) } /posts/id/ ${ id } ` , {
1212 next : { revalidate : 60 } ,
1313 } ) ;
1414
1515 if ( response . ok ) {
1616 const body = await response . json ( ) ;
17- // 解包 ApiResponse
1817 return body ?. data || body ;
1918 }
2019 } catch ( error ) {
@@ -27,10 +26,10 @@ async function getPost(slug: string): Promise<PostDetail | null> {
2726export async function generateMetadata ( {
2827 params,
2928} : {
30- params : Promise < { slug : string } > ;
29+ params : Promise < { id : string } > ;
3130} ) : Promise < Metadata > {
32- const { slug } = await params ;
33- const post = await getPost ( slug ) ;
31+ const { id } = await params ;
32+ const post = await getPost ( id ) ;
3433
3534 if ( post ) {
3635 const coverImage = post . cover_images && post . cover_images . length > 0 ? post . cover_images [ 0 ] : null ;
@@ -47,7 +46,7 @@ export async function generateMetadata({
4746 authors : [ "ExquisiteCore" ] ,
4847 tags : post . labels || [ ] ,
4948 images : coverImage ? [ coverImage ] : [ ] ,
50- url : `https://blog.exquisitecore.xyz/blog/${ post . slug } ` ,
49+ url : `https://blog.exquisitecore.xyz/blog/${ post . id } ` ,
5150 } ,
5251 twitter : {
5352 card : "summary_large_image" ,
@@ -56,7 +55,7 @@ export async function generateMetadata({
5655 images : coverImage ? [ coverImage ] : [ ] ,
5756 } ,
5857 alternates : {
59- canonical : `https://blog.exquisitecore.xyz/blog/${ post . slug } ` ,
58+ canonical : `https://blog.exquisitecore.xyz/blog/${ post . id } ` ,
6059 } ,
6160 } ;
6261 }
@@ -93,7 +92,7 @@ function generateArticleJsonLd(post: PostDetail) {
9392 } ,
9493 mainEntityOfPage : {
9594 "@type" : "WebPage" ,
96- "@id" : `https://blog.exquisitecore.xyz/blog/${ post . slug } ` ,
95+ "@id" : `https://blog.exquisitecore.xyz/blog/${ post . id } ` ,
9796 } ,
9897 keywords : post . labels ?. join ( ", " ) || "" ,
9998 articleSection : "技术博客" ,
@@ -104,10 +103,10 @@ function generateArticleJsonLd(post: PostDetail) {
104103export default async function BlogPostPage ( {
105104 params,
106105} : {
107- params : Promise < { slug : string } > ;
106+ params : Promise < { id : string } > ;
108107} ) {
109- const { slug } = await params ;
110- const post = await getPost ( slug ) ;
108+ const { id } = await params ;
109+ const post = await getPost ( id ) ;
111110
112111 return (
113112 < >
@@ -119,7 +118,7 @@ export default async function BlogPostPage({
119118 } }
120119 />
121120 ) }
122- < BlogPost slug = { slug } />
121+ < BlogPost id = { id } />
123122 </ >
124123 ) ;
125124}
0 commit comments