fix: sitemap 加 force-dynamic + try-catch(构建时不查数据库)

This commit is contained in:
胡旭
2026-06-24 17:20:01 +08:00
parent 89f8d6e223
commit 38f2a9823b
+29 -23
View File
@@ -1,6 +1,8 @@
import type { MetadataRoute } from "next";
import { getPublishedPosts, getPublicCategories, getAllTags } from "@/lib/store";
export const dynamic = "force-dynamic";
const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL || "https://asui.xyz";
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
@@ -12,32 +14,36 @@ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
{ url: `${SITE_URL}/about`, changeFrequency: "yearly", priority: 0.5 },
];
const [publishedPosts, tags, categories] = await Promise.all([
getPublishedPosts(),
getAllTags(),
getPublicCategories(),
]);
try {
const [publishedPosts, tags, categories] = await Promise.all([
getPublishedPosts(),
getAllTags(),
getPublicCategories(),
]);
const postRoutes: MetadataRoute.Sitemap = publishedPosts.map((post) => ({
url: `${SITE_URL}/posts/${post.slug}`,
lastModified: new Date(post.updatedAt || post.date),
changeFrequency: "monthly",
priority: 0.8,
}));
const postRoutes: MetadataRoute.Sitemap = publishedPosts.map((post) => ({
url: `${SITE_URL}/posts/${post.slug}`,
lastModified: new Date(post.updatedAt || post.date),
changeFrequency: "monthly",
priority: 0.8,
}));
const tagRoutes: MetadataRoute.Sitemap = tags.map((tag) => ({
url: `${SITE_URL}/blog?tag=${encodeURIComponent(tag.name)}`,
changeFrequency: "monthly",
priority: 0.4,
}));
const categoryRoutes: MetadataRoute.Sitemap = categories
.filter((c) => c.count > 0)
.map((cat) => ({
url: `${SITE_URL}/blog?category=${encodeURIComponent(cat.name)}`,
changeFrequency: "monthly" as const,
const tagRoutes: MetadataRoute.Sitemap = tags.map((tag) => ({
url: `${SITE_URL}/blog?tag=${encodeURIComponent(tag.name)}`,
changeFrequency: "monthly",
priority: 0.4,
}));
return [...staticRoutes, ...postRoutes, ...tagRoutes, ...categoryRoutes];
const categoryRoutes: MetadataRoute.Sitemap = categories
.filter((c) => c.count > 0)
.map((cat) => ({
url: `${SITE_URL}/blog?category=${encodeURIComponent(cat.name)}`,
changeFrequency: "monthly" as const,
priority: 0.4,
}));
return [...staticRoutes, ...postRoutes, ...tagRoutes, ...categoryRoutes];
} catch {
return staticRoutes;
}
}