From ca1cf10aa8d50f821d6845909acab21298b6e4bc Mon Sep 17 00:00:00 2001 From: passthem Date: Tue, 7 Apr 2026 12:19:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=94=99=E8=AF=AF=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/blogs.astro | 10 ++++++++-- src/pages/blogs/[blog_id].astro | 9 ++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/pages/blogs.astro b/src/pages/blogs.astro index 27eb232..ab557c4 100644 --- a/src/pages/blogs.astro +++ b/src/pages/blogs.astro @@ -1,6 +1,6 @@ --- import FullLayoutV1 from '../layout/FullLayoutV1.astro' -import { listBlogs } from '../lib/apis/legacy/blog' +import { listBlogs, type ListBlogItemType } from '../lib/apis/legacy/blog' import BlogCard from '../components/BlogCard.astro' import BlogHeaderImage from '../assets/blogs-header.webp' import { Image } from 'astro:assets' @@ -10,7 +10,13 @@ export const prerender = false const _page = parseInt(Astro.url.searchParams.get('page') || '1') const page = isNaN(_page) ? 1 : Math.max(1, _page) -const blogs = await listBlogs({ page, limit: 100 }) +let blogs: ListBlogItemType[] = [] + +try { + blogs = await listBlogs({ page, limit: 100 }) +} catch { + return Astro.redirect('/500') +} --- diff --git a/src/pages/blogs/[blog_id].astro b/src/pages/blogs/[blog_id].astro index 9669b74..6fe11df 100644 --- a/src/pages/blogs/[blog_id].astro +++ b/src/pages/blogs/[blog_id].astro @@ -17,7 +17,14 @@ if (isNaN(blog_id_num) || blog_id_num < 0) { return Astro.redirect('/404') } -const blogData = await getBlog(blog_id_num) +let blogData = null + +try { + blogData = await getBlog(blog_id_num) +} catch (e) { + return Astro.redirect('/500') +} + if (blogData === null) { return Astro.redirect('/404') }