SvelteKit, @sveltejs/adapter-static ile her sayfayı derleme sırasında önceden oluşturup sonucu düz dosyalar olarak yazabilir. Lobsite bu dosyaları barındırır. Statik adaptörle derleyin, npx lobsite çalıştırın; site HTTPS'li bir *.lobsite.app adresinde yayında olur. Bu sayfa tamamen önceden oluşturulmuş siteler hakkındadır. Sunucu rotaları ve form action'ları, SvelteKit'i bir sunucuda çalıştıran bir barındırma gerektirir.
Nasıl çalışır
- Statik adaptöre geçin ve her sayfayı önceden oluşturun (aşağıya bakın), ardından
npm run buildçalıştırın. Sitebuild/içine düşer. - Projede
npx lobsiteçalıştırın.static/veya.svelte-kit/klasörünü değil,build/klasörünü deploy eder. İlk deploy hesap gerektirmez ve 6 saat sürer. - Siteyi sahiplenme bağlantısıyla ücretsiz bir hesapta koruyun. Sonrasında
npm run build && npx lobsiteaynı adresi günceller.
adapter-static ve önceden oluşturma
// svelte.config.js
import adapter from "@sveltejs/adapter-static";
export default {
kit: { adapter: adapter() },
};
// src/routes/+layout.js
export const prerender = true;
- Kök düzendeki
prerender = true, her sayfanın derleme sırasında oluşturulmasını sağlar. Bir sayfa önceden oluşturulamazsa derleme başarısız olur ve hangisi olduğunu söyler; böylece bozuk hiçbir şey deploy edilmez. fallback: "200.html", önceden oluşturulamayan sayfalar içindir: SvelteKit bir200.htmlkabuğu yazar ve Lobsite onu dosya olmayan her yol için sunar; bu sayfalar tarayıcıda oluşturulur. Önceden oluşturulmuş sayfalar yine de arama motorları ve ilk yükleme için daha iyidir.trailingSlashvarsayılanında kalabilir:/about,about.htmlolarak yazılır ve/aboutadresinde sunulur.
Derleme sırasında ne çalışır, ne çalışamaz
+page.server.js içindekiler de dahil load fonksiyonları, bir sayfa önceden oluşturulurken derleme sırasında çalışır; dosyalardan veya API'lerden gelen veriler HTML'in içine gömülür. Dinamik rotalar, sayfalarınızdaki bağlantılar izlenerek bulunur; bağlantı verilmeyenleri prerender.entries içinde listeleyin. Sunucu olmadan çalışamayanlar: form action'ları, önceden oluşturulmuş GET dışındaki +server.js uç noktaları, her istekte çalışan hook'lar ve çerez okuma. Bir iletişim formunu form action yerine /_lobsite/forms/contact adresine gönderin; bkz. formlar.
Dosyalar hash'lerine göre saklanır. Değişmemiş bir siteyi yeniden deploy etmek 0 bayt yükler.
Yayına almadan önce önizleyin. Yönlendirmeler dahil tek tıkla geri alın.
Her site ilk deploy'dan itibaren HTTPS'li bir *.lobsite.app adresi alır.
Bir formu /_lobsite/forms/contact adresine yönlendirin. Spam filtresi dahil.
Yönlendirmeler, başlıklar ve formlar lobsite.toml içinde durur ve her deploy ile birlikte gider.
Her sınır yayımlanmıştır ve her hata sonra ne yapmanız gerektiğini söyler.
SvelteKit barındırma hizmetleri karşılaştırması
| Lobsite | Vercel | Netlify | Cloudflare Pages | |
|---|---|---|---|---|
Önceden oluşturulmuş siteler (adapter-static) |
Evet | Evet | Evet | Evet |
| Sunucu tarafı oluşturma, form action'ları | Hayır | Evet | Evet | Evet |
| Sunucuda derler | Hayır: build/ klasörünü deploy edersiniz |
Evet | Evet | Evet |
| İlk deploy'dan önce hesap | Hayır: 6 saat yayında, sonra ücretsiz koruyun | Evet | Evet | Evet |
| Backend'siz formlar | Evet, site bir hesaptayken | Hayır | Evet | Hayır |
| Özel alan adı | Evet, ücretsiz | Evet | Evet | Evet |
Uygulamanız sayfaları istek anında oluşturuyorsa, onu çalıştıran bir barındırma için adaptör kullanın. Pazarlama sitelerinde, bloglarda ve belgelerde olduğu gibi her sayfa önceden oluşturulabiliyorsa, Lobsite onu tek komutla barındırır ve yalnızca her derlemenin değiştirdiği dosyaları yükler.
Sık sorulan sorular
Lobsite için hangi SvelteKit adaptörünü kullanmalıyım?
Her sayfası önceden oluşturulmuş şekilde @sveltejs/adapter-static. adapter-auto ve platform adaptörleri, Lobsite'ın çalıştırmadığı sunucular ve fonksiyonlar için derler.
Yedek sayfalı bir SvelteKit SPA burada çalışır mı?
Evet. adapter({ fallback: "200.html" }) ayarlayın: Lobsite, dosya olmayan her yol için 200.html dosyasını 200 durumuyla sunar ve SvelteKit'in yönlendiricisi sayfayı tarayıcıda oluşturur. Önceden oluşturulmuş sayfalar yine olduğu gibi sunulur.
SvelteKit derlemem neden bir önceden oluşturma hatasıyla başarısız oldu?
Bir sayfa derleme sırasında oluşturulamadı; çoğu zaman url.searchParams, çerezler veya bir form action okuduğu için. Bu işi tarayıcıya ya da yalnızca derleme sırasında mevcut verileri kullanan bir load fonksiyonuna taşıyın.
Önceden oluşturmadan sonra SvelteKit sayfa geçişleri hâlâ çalışır mı?
Evet. Önceden oluşturulmuş sayfalar SvelteKit'in istemcisini yükler; o da ilk sayfadan sonra gezinmeyi devralır, böylece bağlantılar tam yeniden yükleme olmadan sayfa değiştirmeye devam eder.