Kısa cevap
SSG, sayfa içeriğinin kullanıcı isteğinden önce oluşturulup hazır HTML olarak sunulması yaklaşımıdır.
Nerede işine yarar?
Sık değişmeyen yayınlar ve hizmet açıklamaları için uygun olabilir. İçerik değiştiğinde yeniden üretim veya tanımlı güncelleme yöntemi gerekir. Etkileşimli arama gibi istemci davranışları, ilk içeriğin statik olmasıyla birlikte kullanılabilir.
Tanımdan uygulamaya, kendi denemene.
Bir cümlede uygulaması
Blog yazılarını ve sözlük maddelerini build sırasında üretip bütün metni ilk yanıtta sunmak.
Neyle karıştırılmamalı?
Statik üretilen sayfa mutlaka etkileşimsiz sayfa değildir; üretim zamanı ile tarayıcı davranışı ayrı konulardır.
Ziyaretçi gelmeden sayfa hazır.
Bir stüdyonun yayınladığı tasarım yazısını düşün. Başlık, metin, kaynaklar ve kapak herkes için aynı. Her ziyaret geldiğinde aynı içeriği yeniden birleştirmek yerine sayfa önceden hazırlanabilir. SSG, bu hazır HTML dosyalarının üretildiği yaklaşımdır. Ziyaretçi geldiğinde sunucu veya dağıtım katmanı hazırlanan çıktıyı gönderir. Sayfanın statik üretilmesi, görünümünün basit olması ya da hiçbir etkileşim taşımaması anlamına gelmez.
Asıl karar içerik güncellendiğinde ne olacağıdır. Editör yazıya yeni kaynak eklediğinde hangi sayfalar yeniden üretilecek? Yazının kendi adresi, liste kartı, site haritası ve farklı dil sürümü aynı bilgiye bağlı olabilir. İçerik yayınlama akışı bu ilişkileri kapsamalıdır. Aksi hâlde detayda yeni, listede eski başlık görünür. SSG’de üretimi önceden yapmak, güncelleme sorumluluğunu ortadan kaldırmaz; zamanı ve tetikleyiciyi değiştirir.
Büyük arşivlerde bütün sayfaları her değişiklikte yeniden hazırlamak pahalı olabilir. Bazı sistemler yalnız etkilenen adresleri üretir veya belirli aralıklarla yenileme uygular. Bunların ayrıntısı kullanılan çerçeveye ve barındırmaya bağlıdır. SSG, ISR veya önbellekli sunucu üretimi gibi adları aynı şeymiş gibi kullanmamak gerekir. Hangi çıktının ne zaman yenilendiğini ve ziyaretçiye ne zaman ulaştığını somut bir yayın senaryosuyla açıklamak daha değerlidir.
İçerik hazır olsa bile tarayıcıda yapılacak işler kalabilir. Arama filtresi, video oynatıcı veya küçük bir hesaplama aracı statik sayfanın içinde çalışabilir. Ancak ana yazıyı yalnız bu kod çalıştıktan sonra göstermek, önceden hazırlanmış içeriğin yararını azaltır. Okunacak metin ve gezinilecek gerçek bağlantılar ilk HTML’de yer alırken gerekli etkileşimler üzerine eklenebilir. Statik ve etkileşimli, birbirinin karşıtı değildir.
Statik üretilen bir sayfada küçük canlı parçalar bulunabilir. Örneğin hizmet açıklaması ve örnek proje görselleri önceden hazırlanırken uygun randevu saatleri daha sonra ayrı bir bileşende alınabilir. Bu, bütün sayfanın aynı güncellik hızına sahip olması gerekmediğini gösterir. Yine de canlı alanın yüklenme ve hata durumları kullanıcıya açıklanmalı, ana içeriği görünmez kılmamalıdır. İçeriği güncelleyen editörün hangi değişikliğin yeni üretim gerektirdiğini bilmesi önemlidir. Başlığı değiştirmekle uygulamadaki bir tercihi değiştirmek aynı yayın yolundan geçmeyebilir. Teknik mimari ile editörün günlük çalışma biçimi uyuşmadığında doğru kurulmuş bir sistem bile eski içerik yayımlamaya devam edebilir. Yayın akışını tasarımla birlikte anlat.
Statik üretim, donmuş içerik değildir.
Önceden üretilen yayın
İçerik bir yayın adımında HTML’e dönüşür. Ziyaret sırasında aynı çıktı birçok kişiye dağıtılabilir. Seyrek değişen ve kişiye göre farklılaşmayan içerikte bu yapı sade olabilir. Güncelleme gerektiğinde ise belirlenmiş üretim veya yenileme akışı çalışır. İçerik hâlâ değişir; yalnız değişimin gerçekleştiği aşama farklıdır.
İstekle hazırlanan içerik
Sunucu ziyaretin bağlamına göre o anda çıktı oluşturabilir. Bu, kişiselleşen veya anlık bilgi isteyen alanlarda yararlı olabilir; kaynak bekleme ve sunucu maliyeti getirir. İki yaklaşım aynı projede birlikte yaşayabilir. Bir blog yazısının statik olması, yanında oturuma bağlı bir hesap bölümünün bulunmasını engellemez.
Yayından önce içerik üretmek
SSG, değişme sıklığı düşük sayfalarda üretim yükünü ziyaret anından build aşamasına taşır. İçerik güncellendiğinde hangi sayfaların yeniden üretileceği belirlenmelidir. Dinamik bir özellik gerektiğinde bütün sayfayı dinamik yapmak yerine bu özellik ayrı bir parça olarak ele alınabilir.
- İçerik güncellemesini yeniden üretim akışına bağla.
- Çok sayıda sayfada build süresi ve hata koşullarını kontrol et.
- Sayfaya özel dinamik ihtiyaçları açıkça ayır.
Statik sayfa etkileşimsiz midir?
Hayır. Önceden üretilmiş HTML içinde arama, filtre veya medya kontrolü gibi istemci etkileşimleri bulunabilir. Statik üretim, sayfanın HTML'inin ne zaman hazırlandığını anlatır; kullanıcıya sunulan bütün davranışları tanımlamaz.
İşin içinde sorulacaklar.
SSG sadece küçük siteler için mi uygundur?
Boyut tek ölçüt değildir. Çok sayıda sayfanın üretim süresi, içerik değişme sıklığı ve dağıtım altyapısı birlikte değerlendirilir. Büyük bir arşiv seyrek güncelleniyorsa uygun bir üretim akışıyla yönetilebilir. Küçük ama saniyeler içinde değişen bir veri ekranı farklı yöntem isteyebilir. Sayfa sayısını tek başına karar ölçütü yapmak, güncellik ve içerik bağımlılıklarını gözden kaçırır.
Statik sayfada form çalışır mı?
Evet. Formun görünümü ve alanları önceden üretilebilir; gönderimi bir sunucu uç noktası veya uygun hizmet işleyebilir. Burada formun HTML’i ile veriyi kabul eden sistem farklı sorumluluklar taşır. Erişim kontrolü, doğrulama ve hata davranışı gönderim tarafında yine gerekir. Sayfanın SSG olması, formun yalnız görselden ibaret olduğu veya sunucu işine hiç ihtiyaç duymadığı anlamına gelmez.
Bir yazıyı silince hazır dosyası da silinir mi?
Yayın sisteminin davranışına bağlıdır; otomatik varsayılmamalıdır. İçerik kaydının kaldırılması, oluşturulmuş dosyanın ve CDN kopyasının aynı anda kalkacağını garanti etmez. Eski adresin 404, 410 veya uygun bir yönlendirme vermesi ayrıca planlanır. İç bağlantılar ve site haritası da güncellenir. İçerik yaşam döngüsünde yayımlamak kadar kaldırmak ve adres değiştirmek de açık bir akış ister.
Bir yazıyı yayından geri al.
Örnek bir yayın kaydının başlığını değiştirdiğini, sonra da yazıyı yayından kaldırdığını düşün. Üretim akışını iki durum için ayrı yaz. Amaç kullanılan aracın adını öğrenmekten önce hangi çıktının hangi olayla değişmesi gerektiğini görmek.
SSG sayfayı önceden hazırlar; yayın disiplinini kendiliğinden kurmaz. İçerik, üretim ve dağıtım arasındaki ilişki net olduğunda hem ziyaretçi hem editör neyin yayında olduğunu anlayabilir.
Bağlantılı kavramlar
- SSRSSR, bir sayfanın HTML içeriğinin istek sırasında sunucuda oluşturulması yaklaşımıdır.
- HydrationHydration, önceden oluşturulmuş HTML üzerine tarayıcıda uygulamanın etkileşimli davranışlarının bağlanması sürecidir.
- İçerik stratejisiİçerik stratejisi, hangi içeriğin kimin hangi ihtiyacına yanıt vereceğini ve nasıl üretileceğini, yayımlanacağını ve korunacağını planlamaktır.

