SvelteKit puede prerenderizar cada página en el build y escribir el resultado como archivos simples con @sveltejs/adapter-static. Lobsite aloja esos archivos. Compila con el adaptador estático, ejecuta npx lobsite, y el sitio estará publicado en una dirección *.lobsite.app con HTTPS. Esta página trata de sitios totalmente prerenderizados. Las rutas de servidor y las form actions necesitan un hosting que ejecute SvelteKit en un servidor.
Cómo funciona
- Cambia al adaptador estático y prerenderiza cada página (ver abajo); luego ejecuta
npm run build. El sitio queda enbuild/. - Ejecuta
npx lobsiteen el proyecto. Despliegabuild/, nostatic/ni.svelte-kit/. El primer deploy no necesita cuenta y dura 6 horas. - Consérvalo con el enlace para reclamarlo, en una cuenta gratuita. Después,
npm run build && npx lobsiteactualiza la misma dirección.
adapter-static y prerenderizado
// svelte.config.js
import adapter from "@sveltejs/adapter-static";
export default {
kit: { adapter: adapter() },
};
// src/routes/+layout.js
export const prerender = true;
prerender = trueen el layout raíz hace que cada página se renderice en el build. Si una página no se puede prerenderizar, el build falla y te dice cuál, así que no se despliega nada roto.fallback: "200.html"es para páginas que no se pueden prerenderizar: SvelteKit escribe una carcasa200.htmly Lobsite la sirve para cualquier ruta que no sea un archivo, de modo que esas páginas se renderizan en el navegador. Las páginas prerenderizadas siguen siendo mejores para los buscadores y la primera carga.trailingSlashpuede quedarse en su valor por defecto:/aboutse escribe comoabout.htmly se sirve en/about.
Qué se ejecuta en el build y qué no puede funcionar
Las funciones load, incluidas las de +page.server.js, se ejecutan durante el build cuando una página se prerenderiza, así que los datos de archivos o APIs quedan incrustados en el HTML. Las rutas dinámicas se encuentran siguiendo los enlaces de tus páginas; añade a prerender.entries las que no estén enlazadas. Lo que no puede funcionar sin servidor: form actions, endpoints +server.js que no sean GET prerenderizados, hooks que se ejecutan en cada petición y la lectura de cookies. Para un formulario de contacto, envíalo a /_lobsite/forms/contact en lugar de a una form action; consulta formularios.
Los archivos se guardan por su hash. Volver a desplegar un sitio sin cambios sube 0 bytes.
Previsualiza antes de publicar. Vuelve atrás con un clic, redirecciones incluidas.
Cada sitio recibe una dirección *.lobsite.app con HTTPS desde el primer deploy.
Apunta un formulario a /_lobsite/forms/contact. Filtro de spam incluido.
Las redirecciones, cabeceras y formularios están en lobsite.toml y viajan con cada deploy.
Todos los límites están publicados y cada error te dice qué hacer a continuación.
Comparativa de hostings para SvelteKit
| Lobsite | Vercel | Netlify | Cloudflare Pages | |
|---|---|---|---|---|
Sitios prerenderizados (adapter-static) |
Sí | Sí | Sí | Sí |
| Renderizado en servidor, form actions | No | Sí | Sí | Sí |
| Compila en el servidor | No: despliegas build/ |
Sí | Sí | Sí |
| Cuenta antes del primer deploy | No: publicado 6 horas, luego consérvalo gratis | Sí | Sí | Sí |
| Formularios sin backend | Sí, cuando el sitio está en una cuenta | No | Sí | No |
| Dominio propio | Sí, gratis | Sí | Sí | Sí |
Si tu app renderiza páginas bajo demanda, usa un adaptador para un hosting que la ejecute. Si cada página se puede prerenderizar, como en webs de marketing, blogs y documentación, Lobsite la aloja con un comando y sube solo los archivos que cambió cada build.
Preguntas frecuentes
¿Qué adaptador de SvelteKit debo usar para Lobsite?
@sveltejs/adapter-static, con cada página prerenderizada. adapter-auto y los adaptadores de plataforma compilan para servidores y funciones, que Lobsite no ejecuta.
¿Puede funcionar aquí una SPA de SvelteKit con página de respaldo?
Sí. Configura adapter({ fallback: "200.html" }): Lobsite sirve 200.html con estado 200 para cualquier ruta que no sea un archivo, y el router de SvelteKit renderiza la página en el navegador. Las páginas prerenderizadas se siguen sirviendo tal cual.
¿Por qué falló mi build de SvelteKit con un error de prerenderizado?
Una página no pudo renderizarse en el build, a menudo porque lee url.searchParams, cookies o una form action. Mueve ese trabajo al navegador, o a una función load que solo use datos disponibles en el build.
¿Siguen funcionando las transiciones de página de SvelteKit tras prerenderizar?
Sí. Las páginas prerenderizadas cargan el cliente de SvelteKit, que se encarga de la navegación después de la primera página, así que los enlaces siguen cambiando de página sin recarga completa.