2014-09-11 64 views
5

Son zamanlarda çok fazla araştırma yapmayı araştırıyorum ve sunucu render koduna düğüm gibi bir şeyi nasıl kurabileceğinizi görüyorum. Hız nedenleriyle statik sayfaları kullanmakla ilgileniyorum, ancak statik html kullanırken tepki bileşenlerini oluşturmanın mümkün olup olmadığından emin değilim.Sunucu oluşturma Statik bir web sitesinde jct reaktifi

Tepki oluşturma işlemini tetiklemek için nginx gibi bir şey kullanabilir miyim? Veya daha fazlasına ihtiyacım var mı ve düğüm, ray veya sinatra gibi şeyleri kullanmak zorunda mıyım? Maalesef bu yanlış bir soru ise, güçlü bir sunucu istemci etkileşimi duyumu yok.

+0

Bunu deneyin: https://www.npmjs.org/package/react-server-example – Douglas

cevap

8

Statik HTML - ReactDOMServer.renderComponentToStaticMarkup (docs) oluşturmanıza izin veren bir işlevi dışa aktarıyoruz.

Bu işlevi çağırmak için Düğümün çalıştırılmasına ihtiyacınız olacak. Alternatif olarak, sitenizi geliştirirken de bu işlevi kullanabilir ve diske yazdığınız statik bir HTML dosyası oluşturmak için çağırabilirsiniz. İşlevi çağırmak için yine de bir düğüme ihtiyaç duyarsınız, ancak üretimde düğümlere ihtiyacınız olmazdı. Daha sonra istediğiniz dosyayı kullanabilirsiniz (örneğin, GitHub sayfalarıyla, S3 ile ya da sadece HTML olduğu için gerçekten herhangi bir yerde kullanılabilir).

+0

Üretim için düğüm sunucu kodundan statik biçimlendirme oluşturmam gerektiğini mi söylüyorsunuz? Yoksa işaretlemeyi oluşturduktan sonra her yere hizmet edebileceğimi mi söylüyorsun? Sadece açıklığa kavuşturmak. Cevap için teşekkürler. –

+0

Üretimde nasıl çalıştırdığınız size kalmış. Sadece statik HTML'yi sunmak istediğinizi belirttiniz. Bunu yapabilirsin ama React'u kullanabilmek için kodu çalıştırmak için bir JS motoruna ihtiyacınız var.Bazı yönlendirme haritalarından ve React bileşenlerinden geçen, bu yöntemi çağıran ve daha sonra çıktıyı html dosyalarına kaydeden oldukça kolay bir şey oluşturabilirsiniz. Jekyll ve diğer "statik site" jeneratörlerinin aslında durağan son hedefe ulaşmak için Ruby'ye veya başka bir kod çalıştırma ortamına nasıl benzediğine benzer. –

3

Evet, sunucu oluşturmayı kullanarak sitenin statik bir sürümünü oluşturabilir ve herhangi bir statik web sitesi gibi sunabilirsiniz.

dinamik, ağ bağlantılı uygulamalar güç verebilir Tepki https://github.com/reactjs/react-page itibaren

. Ancak tepki-sayfası ile, React, statik bir blog, Github belgeleri, veya başka bir statik site oluşturmak için de kullanılabilir. Tepki sayfası sunucu oluşturmayı kullandığı için, statik bir site oluşturmak tek bir wget komutu kadar kolaydır.

düğüm server.js wget -mpck --user-ajan = "" -e robotlar = OS X üzerinde kapalı http://localhost:8080/index.html al wget: http://osxdaily.com/2012/05/22/install-wget-mac-os-x/ deneyin veya demlemek varsa: demlemek wget

Bu yüklemek tüm interaktif sitenizi önceden kurar, bu yüzden dosya sunucusu veya github vb. sunulabilir. Dosyanızdasunucusunda gzip'i etkinleştirmeyi unutmayın! Tepki işaretlemesi büyüktür, ancak çok iyi sıkıştırır.

5

Eğer CDN (örn GitHub Sayfaları, Amazon S3/CloudFront Firebase) da tepki web uygulaması barındırmak için planlıyorsanız, o zaman tüm tepki tabanlı sayfaları gibi statik HTML dosyaları önceden işlemek isteyebilir derleme adımı sırasında. böylece en kısa sürede sonraki adımda, sen bu site için bir Travis CI otomatik oluşturma yapılandırması ekleyebilirsiniz gibi: (Ben yazar reddi)

https://github.com/koistya/react-static-boilerplate

: İşte bir örnek Kaynak dosyalarının yeni sürümü GitHub deposuna aktarılır, Travis CI projeyi oluşturacak ve GitHub Sayfalarına (veya Amazon S3, Firebase) yönlendirecektir.