docs
This commit is contained in:
@@ -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 (
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user