Yönlendirme
Rotalar doğrudan src/ altındaki dosya sisteminden gelir.
src/
index.ht.js → /
about.ht.js → /about
blog/
index.ht.js → /blog
[slug].ht.js → /blog/:slug
docs/
[...path]?.ht.js → /docs, /docs/a, /docs/a/b, ...
(admin)/
users.ht.js → /users
404.ht.js → dist/404.htmlRota tablosu
| Özellik | Dosya | URL |
|---|---|---|
| Statik | index.ht.js | / |
| İç içe | blog/index.ht.js | /blog |
| Dinamik | blog/[slug].ht.js | /blog/my-post |
| Birden çok parametre | blog/[year]/[slug].ht.js | /blog/2026/my-post |
| Hepsini yakalayan | docs/[...path].ht.js | /docs/api/auth |
| İsteğe bağlı yakalayan | docs/[...path]?.ht.js | /docs + daha derini |
| Rota grupları | (admin)/users.ht.js | /users |
Daha belirli rotalar kazanır: statik dinamiği, dinamik de hepsini yakalayanları yener. Aynı URL’i üreten iki dosya bir derleme hatasıdır.
generateStaticParams
Dinamik rotalar, derleme sırasında hangi sayfaların üretileceğini bildirir. sitelo (geliştirme) içinde dinamik rotalar, her parametreyi listelemeden istendikçe işlenmeyi sürdürür.
export function generateStaticParams() {
return [
{ slug: 'hello-world' },
{ slug: 'my-first-post' },
]
}
export default ({ params }) => `
<html><body><h1>${params.slug}</h1></body></html>
`import { html, body, h1 } from 'javascript-to-html'
export function generateStaticParams() {
return [
{ slug: 'hello-world' },
{ slug: 'my-first-post' },
]
}
export default ({ params }) =>
html(
body(h1(params.slug))
)export function generateStaticParams() {
return [
{ slug: 'hello-world' },
{ slug: 'my-first-post' },
]
}
export default function Post({ params }) {
return (
<html>
<body>
<h1>{params.slug}</h1>
</body>
</html>
)
}Değerler dize, sayı ya da mantıksal olabilir — dizeye çevrilir ve URL olarak kodlanır. Hepsini yakalayan parametreler dizileri ({ path: ['a', 'b'] }) ya da eğik çizgiyle ayrılmış dizeleri ({ path: 'a/b' }) kabul eder.
Sıfır rota üreten dinamik bir sayfa bir uyarı yazdırır, böylece sitenizden sessizce kaybolamaz.