SvelteKit kan forhåndsrendre hver side ved bygging og skrive resultatet som vanlige filer med @sveltejs/adapter-static. Lobsite hoster de filene. Bygg med den statiske adapteren, kjør npx lobsite, og nettstedet er live på en *.lobsite.app-adresse med HTTPS. Denne siden handler om fullt forhåndsrendrede nettsteder. Serverruter og form actions trenger en vert som kjører SvelteKit på en server.
Slik fungerer det
- Bytt til den statiske adapteren og forhåndsrendre hver side (se under), og kjør så
npm run build. Nettstedet havner ibuild/. - Kjør
npx lobsitei prosjektet. Den deployerbuild/, ikkestatic/eller.svelte-kit/. Første deploy trenger ingen konto og varer i 6 timer. - Behold det med krav-lenken, i en gratis konto. Deretter oppdaterer
npm run build && npx lobsiteden samme adressen.
adapter-static og forhåndsrendring
// svelte.config.js
import adapter from "@sveltejs/adapter-static";
export default {
kit: { adapter: adapter() },
};
// src/routes/+layout.js
export const prerender = true;
prerender = truei rot-layouten gjør at hver side rendres ved bygging. Kan en side ikke forhåndsrendres, feiler bygget og sier hvilken, så ingenting ødelagt blir deployet.fallback: "200.html"er for sider som ikke kan forhåndsrendres: SvelteKit skriver et200.html-skall, og Lobsite leverer det for alle stier som ikke er en fil, så de sidene rendres i nettleseren. Forhåndsrendrede sider er likevel bedre for søkemotorer og første lasting.trailingSlashkan stå på standardverdien:/aboutskrives somabout.htmlog leveres på/about.
Hva som kjører ved bygging, og hva som ikke kan
load-funksjoner, også de i +page.server.js, kjører under bygget når en side forhåndsrendres, så data fra filer eller API-er bakes inn i HTML-en. Dynamiske ruter finnes ved å følge lenker fra sidene dine; list opp dem som ikke er lenket til, i prerender.entries. Det som ikke kan fungere uten server: form actions, +server.js-endepunkter utenom forhåndsrendrede GET-endepunkter, hooks som kjører per forespørsel, og lesing av informasjonskapsler. Send et kontaktskjema til /_lobsite/forms/contact i stedet for til en form action; se skjemaer.
Filer lagres etter hash. Å deploye et uendret nettsted på nytt laster opp 0 byte.
Forhåndsvis før du går live. Rull tilbake med ett klikk, inkludert videresendinger.
Hvert nettsted får en *.lobsite.app-adresse med HTTPS fra første deploy.
Pek et skjema mot /_lobsite/forms/contact. Spamfilter inkludert.
Videresendinger, headere og skjemaer ligger i lobsite.toml og følger med hver deploy.
Hver grense er publisert, og hver feil forteller deg hva du skal gjøre videre.
SvelteKit-verter sammenlignet
| Lobsite | Vercel | Netlify | Cloudflare Pages | |
|---|---|---|---|---|
Forhåndsrendrede nettsteder (adapter-static) |
Ja | Ja | Ja | Ja |
| Serverrendering, form actions | Nei | Ja | Ja | Ja |
| Bygger på serveren | Nei: du deployer build/ |
Ja | Ja | Ja |
| Konto før første deploy | Nei: live i 6 timer, så behold det gratis | Ja | Ja | Ja |
| Skjemaer uten backend | Ja, når nettstedet er i en konto | Nei | Ja | Nei |
| Eget domene | Ja, gratis | Ja | Ja | Ja |
Hvis appen din rendrer sider ved forespørsel, bruk en adapter for en vert som kjører den. Kan hver side forhåndsrendres, som for markedsføringsnettsteder, blogger og dokumentasjon, hoster Lobsite den med én kommando og laster bare opp filene hvert bygg har endret.
Ofte stilte spørsmål
Hvilken SvelteKit-adapter bør jeg bruke for Lobsite?
@sveltejs/adapter-static, med hver side forhåndsrendret. adapter-auto og plattformadapterne bygger for servere og funksjoner, som Lobsite ikke kjører.
Kan en SvelteKit-SPA med reserveside kjøre her?
Ja. Sett adapter({ fallback: "200.html" }): Lobsite leverer 200.html med status 200 for alle stier som ikke er en fil, og SvelteKits ruter rendrer siden i nettleseren. Forhåndsrendrede sider leveres fortsatt som de er.
Hvorfor feilet SvelteKit-bygget mitt med en forhåndsrendringsfeil?
En side kunne ikke rendres ved bygging, ofte fordi den leser url.searchParams, informasjonskapsler eller en form action. Flytt det arbeidet til nettleseren, eller inn i en load-funksjon som bare bruker data som er tilgjengelige ved bygging.
Fungerer sideovergangene i SvelteKit fortsatt etter forhåndsrendring?
Ja. De forhåndsrendrede sidene laster SvelteKits klient, som tar over navigasjonen etter første side, så lenker bytter fortsatt side uten full omlasting.