Updated docs

This commit is contained in:
2026-09-09 00:06:18 +02:00
parent fce17654f8
commit 99490bfc4d
3 changed files with 107 additions and 26 deletions
+16
View File
@@ -359,7 +359,11 @@ export default async function LocaleLayout({ children, params }) {
return (
<html lang={locale}>
{/* BEZ jawnego <head>! Sztywny <head> wypycha metadata do <body>
(canonical/title poza head → crawlery ich nie widzą). Next zarządza
<head> sam; MediaPreconnect w body, React 19 hoistuje link do head. */}
<body>
<MediaPreconnect /> {/* preconnect CDN, jeśli R2 */}
<ConsentProvider texts={texts}>
<main>{children}</main>
<CookieBanner />
@@ -392,6 +396,11 @@ const pageMetadata = createPageMetadata({
baseUrl: process.env.NEXT_PUBLIC_SERVER_URL,
})
// ISR — cache strony z gotowym <head>. Eliminuje race condition streamingu
// metadata (canonical/title zawsze w head, nie w body). TTFB ~20ms, brak 503.
// Redaktor widzi zmiany po rewalidacji — patrz seo.md (ISR a treść z panelu).
export const revalidate = 3600
export async function generateMetadata({ params }): Promise<Metadata> {
const { locale, slug } = await params
return pageMetadata({ payload: await getCachedPayload(), locale, slug })
@@ -408,6 +417,8 @@ export default async function Page({ params, searchParams }) {
- brak slug (`/pl`) → home przez System Pages (nie hardkod slug)
- slug (`/pl/o-nas`) → resolveRoute po slug w danym locale
- **ISR (`revalidate`)** → metadata zawsze w `<head>` (nie body), szybki TTFB.
KRYTYCZNE dla SEO — patrz seo.md (metadata w head).
- `depth: 2` → relacje w blokach (form) się populują
## 11. Metadata / SEO (szczegóły)
@@ -486,10 +497,15 @@ przypisanie strony-archiwum w System Pages.
```ts
// app/sitemap.ts
export { sitemap as default } from '@/lib/content'
export const dynamic = 'force-dynamic' // KONIECZNE dla deployu kontenerowego
// app/robots.ts
export { robots as default } from '@/lib/content'
```
`force-dynamic` w sitemap.ts jest wymagane przy deployu w kontenerze (Coolify/
Docker) — bez niego build próbuje prerenderować sitemap i łączy się z bazą,
której kontener budujący nie widzi → build pada. Szczegóły: [deployment.md](./deployment.md).
---
## Kiedy coś nie działa