lobsite! Увійти Створити обліковий запис

Статичний хостинг SvelteKit

Розмістіть попередньо згенерований SvelteKit: зберіть з adapter-static, і npx lobsite розгорне build/ з HTTPS, формами та URL перегляду кожної версії.

З adapter-static збірка записується до build/, і саме ця папка розгортається.
Перетягніть HTML-файл, папку або .zip Перевіряється у браузері; нічого не надсилається до публікації.

SvelteKit може попередньо генерувати кожну сторінку під час збірки та записувати результат як звичайні файли через @sveltejs/adapter-static. Lobsite розміщує ці файли. Зберіть зі статичним адаптером, виконайте npx lobsite — і сайт доступний за адресою *.lobsite.app з HTTPS. Ця сторінка про повністю попередньо згенеровані сайти. Серверним маршрутам і діям форм потрібен хостинг із запуском SvelteKit на сервері.

Як це працює

  1. Перейдіть на статичний адаптер і ввімкніть попередню генерацію кожної сторінки (дивіться нижче), потім виконайте npm run build. Сайт потрапить у build/.
  2. Виконайте npx lobsite у проєкті. Команда розгортає build/, а не static/ чи .svelte-kit/. Перше розгортання не потребує облікового запису й діє 6 годин.
  3. Збережіть сайт за посиланням для збереження в безкоштовному обліковому записі. Надалі npm run build && npx lobsite оновлює ту саму адресу.

adapter-static і попередня генерація

// svelte.config.js
import adapter from "@sveltejs/adapter-static";

export default {
  kit: { adapter: adapter() },
};
// src/routes/+layout.js
export const prerender = true;
  • prerender = true у кореневому макеті генерує кожну сторінку під час збірки. Якщо сторінку не можна попередньо згенерувати, збірка завершується помилкою та вказує її, тож неробоче не розгортається.
  • fallback: "200.html" — для сторінок, які не можна попередньо згенерувати: SvelteKit записує оболонку 200.html, а Lobsite віддає її для кожного шляху, що не є файлом, тож ці сторінки генеруються в браузері. Попередньо згенеровані сторінки все одно кращі для пошуку й першого завантаження.
  • trailingSlash можна залишити типовим: /about записується як about.html і віддається за /about.

Що виконується під час збірки, а що не може

Функції load, зокрема в +page.server.js, виконуються під час збірки попередньо згенерованої сторінки, тому дані з файлів чи API потрапляють у HTML. Динамічні маршрути знаходяться переходами за посиланнями сторінок; непов’язані перелічіть у prerender.entries. Без сервера не працюють дії форм, кінцеві точки +server.js, окрім попередньо згенерованих GET, хуки для кожного запиту й читання cookie. Контактну форму надсилайте на /_lobsite/forms/contact замість дії форми; дивіться форми.

Завантажуються лише змінені файли

Файли зберігаються за хешем. Повторне розгортання незміненого сайту завантажує 0 байтів.

Кожне розгортання має власну URL-адресу

Перегляньте перед публікацією. Відкотіть одним натисканням разом із перенаправленнями.

HTTPS скрізь

Кожен сайт отримує адресу *.lobsite.app із HTTPS від першого розгортання.

Форми, які просто працюють

Спрямуйте форму на /_lobsite/forms/contact. Фільтрація спаму включена.

Налаштування в одному файлі

Перенаправлення, заголовки та форми зберігаються в lobsite.toml і супроводжують кожне розгортання.

Зрозумілі обмеження

Усі обмеження опубліковані, а кожна помилка підказує наступний крок.

Порівняння хостингів SvelteKit

Lobsite Vercel Netlify Cloudflare Pages
Попередньо згенеровані сайти (adapter-static) Так Так Так Так
Серверний рендеринг, дії форм Ні Так Так Так
Збірка на сервері Ні: ви розгортаєте build/ Так Так Так
Обліковий запис перед першим розгортанням Ні: працює 6 годин, потім можна зберегти безкоштовно Так Так Так
Форми без бекенду Так, після додавання сайту до облікового запису Ні Так Ні
Власний домен Так, безкоштовно Так Так Так

Якщо застосунок генерує сторінки на запит, використовуйте адаптер для хостингу, що його запускає. Якщо всі сторінки можна попередньо згенерувати, як у маркетингових сайтах, блогах і документації, Lobsite розміщує їх однією командою та завантажує лише файли, змінені кожною збіркою.

Поширені запитання

Який адаптер SvelteKit використовувати для Lobsite?

@sveltejs/adapter-static із попередньою генерацією кожної сторінки. adapter-auto й платформні адаптери збирають для серверів та функцій, які Lobsite не запускає.

Чи працює тут SvelteKit SPA з резервною сторінкою?

Так. Задайте adapter({ fallback: "200.html" }): Lobsite віддає 200.html зі статусом 200 для кожного шляху, що не є файлом, а роутер SvelteKit генерує сторінку в браузері. Попередньо згенеровані сторінки віддаються як є.

Чому збірка SvelteKit завершилася помилкою prerender?

Сторінка не змогла згенеруватися під час збірки, часто через читання url.searchParams, cookie чи дію форми. Перенесіть цю роботу в браузер або у функцію load, яка використовує лише доступні під час збірки дані.

Чи працюють переходи SvelteKit після попередньої генерації?

Так. Попередньо згенеровані сторінки завантажують клієнт SvelteKit, який після першої сторінки перебирає навігацію, тому посилання й далі змінюють сторінки без повного перезавантаження.

Дивіться також