Next.js potrafi zbudować stronę, która nie potrzebuje serwera: ustaw output: "export", a next build zapisze każdą stronę jako HTML w out/. Lobsite hostuje ten folder. Uruchom npm run build, potem npx lobsite, a strona będzie działać pod adresem *.lobsite.app z HTTPS. Dla jasności od początku: ta strona dotyczy statycznych eksportów. Renderowanie na serwerze, trasy API i middleware wymagają hostingu z Node.js, takiego jak Vercel.
Jak to działa
- Włącz statyczny eksport w
next.config.jsprzezoutput: "export"(zobacz niżej), potem uruchomnpm run build. Strona trafi doout/. - Uruchom
npx lobsitew projekcie. Wdrażaout/, a niepublic/ani.next/. Pierwsze wdrożenie nie wymaga konta i trwa 6 godzin. - Zachowaj ją linkiem do przejęcia, na darmowym koncie. Potem każde
npm run build && npx lobsiteaktualizuje ten sam adres.
next.config.js dla statycznego eksportu
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "export",
images: { unoptimized: true },
};
module.exports = nextConfig;
output: "export"sprawia, żenext buildzapisujeout/. Starego polecenianext exportnie ma od Next.js 14; zastąpiło je to ustawienie.images: { unoptimized: true }jest potrzebne, jeśli używasznext/image: domyślny loader zmienia rozmiar obrazów na serwerze przy każdym żądaniu. Z tym ustawieniem obrazy są serwowane bez zmian; zmień ich rozmiar przed buildem albo użyj własnego loadera.trailingSlashmoże zostać wyłączone. Strony są zapisywane jakoabout.html, a Lobsite serwuje je pod/about.
Czego nie potrafi statyczny eksport
Dokumentacja Next.js wymienia funkcje wymagające serwera. Te, na które trafia się najczęściej:
- Trasy API i Route Handlers poza statycznymi
GET. Wysyłaj formularze na/_lobsite/forms/contact; zobacz formularze. redirects,rewritesiheadersw next.config. Przenieś przekierowania i nagłówki dolobsite.toml, gdzie obowiązują dla każdego żądania; Generator przekierowań napisze reguły.- Middleware, Server Actions, ISR oraz
cookies()lubheaders()w stronach. - Dynamiczne trasy bez
generateStaticParams: każda strona musi być znana w czasie builda.
Jeśli Twoja aplikacja na tym polega, nie jest stroną statyczną i właściwym wyborem jest hosting uruchamiający Next.js na serwerze.
Pliki są przechowywane według hasha. Ponowne wdrożenie niezmienionej strony wgrywa 0 bajtów.
Podgląd przed publikacją. Wycofanie jednym kliknięciem, razem z przekierowaniami.
Każda strona dostaje adres *.lobsite.app z HTTPS od pierwszego wdrożenia.
Skieruj formularz na /_lobsite/forms/contact. Filtr spamu w zestawie.
Przekierowania, nagłówki i formularze są w lobsite.toml i wędrują z każdym wdrożeniem.
Każdy limit jest opublikowany, a każdy błąd mówi, co zrobić dalej.
Porównanie hostingów dla Next.js
| Lobsite | Vercel | Netlify | GitHub Pages | |
|---|---|---|---|---|
Statyczny eksport (output: "export") |
Tak | Tak | Tak | Tak |
| Renderowanie na serwerze, trasy API, middleware | Nie | Tak | Tak | Nie |
| Build na serwerze | Nie: wdrażasz out/ |
Tak | Tak | W GitHub Actions |
| Konto przed pierwszym wdrożeniem | Nie: 6 godzin online, potem zachowaj za darmo | Tak | Tak | Tak, i repozytorium |
| Formularze bez backendu | Tak, gdy strona jest na koncie | Nie | Tak | Nie |
| Własna domena | Tak, za darmo | Tak | Tak | Tak |
Vercel tworzy Next.js i uruchamia wszystko, co ma. Dla strony firmowej, bloga czy dokumentacji zbudowanych jako statyczny eksport Lobsite jest prostszym hostingiem: jedno polecenie, wgrywane tylko zmienione pliki, URL podglądu dla każdego wdrożenia.
Najczęstsze pytania
Czy mogę tu hostować aplikację Next.js z renderowaniem na serwerze?
Nie. Lobsite serwuje pliki, więc działa tylko statyczny eksport. Jeśli strony używają getServerSideProps, Server Actions lub dynamicznego renderowania, hostuj je tam, gdzie Next.js działa na serwerze.
Dlaczego obrazy next/image nie działają po eksporcie?
Domyślny loader obrazów wymaga serwera. Dodaj images: { unoptimized: true } do next.config.js albo ustaw własny loader wskazujący na CDN obrazów i zbuduj ponownie.
Czy moja strona 404 z Next.js działa?
Tak. next build zapisuje 404.html ze strony not-found (App Router) lub pages/404 (Pages Router), a Lobsite podaje ją dla każdego nieistniejącego adresu.
Czy mogę używać App Routera ze statycznym eksportem?
Tak. Server Components renderują się w czasie builda; komponenty klienckie działają w przeglądarce jak zwykle. Niedostępne są tylko funkcje wymagające żądania w czasie działania.