This commit is contained in:
2026-07-02 23:13:24 +07:00
parent 31f354d9ca
commit c04194bb85
36 changed files with 1005 additions and 41 deletions
+5
View File
@@ -27,12 +27,17 @@ export default async function BlogPostPage({ params }: Props) {
let post: PBPost;
try {
// cache: "no-store" — в отличие от списка постов (там ISR на час), отдельный
// пост всегда читается свежим: страница не самая горячая по трафику, а свежесть
// контента (например, сразу после публикации) важнее экономии на кэше.
post = await pb
.collection(`posts_${lang}`)
.getFirstListItem<PBPost>(`slug = "${slug}" && published = true`, {
cache: "no-store",
});
} catch (error) {
// getFirstListItem бросает исключение, если запись не найдена (404 от PocketBase)
// или не опубликована — в обоих случаях просто показываем стандартный notFound().
notFound();
}
return (
+3
View File
@@ -24,6 +24,9 @@ export default async function BlogIndexPage({ params }: Props) {
let records: PBPost[] = [];
try {
// Передаём кастомный fetch с next.revalidate, чтобы PocketBase SDK использовал
// нативное ISR-кэширование Next.js (обновление раз в час) вместо запроса на
// каждый рендер — иначе SDK делает обычный fetch без опций кэша Next.js.
records = await pb.collection(`posts_${lang}`).getFullList<PBPost>({
filter: "published = true",
sort: "-created",