2015-01-28 17 views
6

ReactJS uygulamasının reaktif yönlendirici kullanarak hiçbir harici bağlantı içermediğini fark ettim. Arama motorları, sitenin çok sayıda bağlantılı içeriğe sahip olduğunu fark etmez. Prerender.io bunun için iyi bir çözüm gibi görünüyor, ancak ReactJS uygulamam için işe yaratamam.SEO için ReactJS ile prerender.io kullanımı

Can prerender.io, ReactJS ile kullanılabilir mi? Değilse, tüm render sunucu tarafı yapmadan sitem için SEO geliştirmek için başka bir iyi yolu var mı?

DÜZENLEME: Daha fazla kazma üzerine, buradaki sorunun tepkisel yönlendiricinin varsayılan olarak bir "#" kullandığını ve "#!" Kullanılmadığını fark ettim. Reaktif yönlendiriciyi "#!" Ile çalışmak mümkün mü?

+0

Meraklı, ben bir tepki geliştirici değilim, ancak ben [tepki-spa.herokuapp.com] (http://react-spa.herokuapp.com/discussions) html5mode tepki yönlendirme ile çalışan görebilirsiniz –

+0

@ritmatter Biz de SEO optimizasyon ihtiyacı olan ReactJs uygulaması üzerinde çalışırken biz de bu sorunu ile karşılaştık. SEO freindly web uygulamaları yaratabilirsiniz kullanarak bizim reakt kombi plaka kontrol edin. https://github.com/Atyantik/react-pwa/. –

cevap

2

Önceden gerçek URL'ler beklendiği anlaşılıyor, aksi takdirde önbelleğe alınmış html'yi normal kullanıcılara sunamazsınız (karma sunucuya gönderilmez).

sunucunuza olarak
Router.run(routes, Router.HistoryLocation, function (Handler) { 

Statik dosya eşleşmeyen tüm yolları ya gönderen endeksine göre sunulduğundan emin olunması gerekir:

-tepki yönlendirici tarihin modunu kullanıyor sağlamak kurarken .html veya prerender kullanarak.

Bu konudaki tüm ayrıntıları bulmak için index.html için tüm istekleri gönder {burada sunucu adını buraya ekleyin} '.


Varsayılan olarak, primer tarafından yalnızca belirli durumlarda geçerlidir. Eğer node.js içinde express.js ortakatmanını kullanıyorsanız İşte bir örnek:

diğer katman için benzer değişiklikler anlamaya gerekir (daha az esnek dilde bir çatal gerek duyarız).

+0

Bunu denedim, ama hala işe yaramadı. Prerender görünüşe göre hash yerine bir hashbang ile çalışmak zorunda, ama ben de bu şekilde çalışmak için alamadım. – ritmatter

+0

@ritmatter, Cevabımı güncelledim. Ayrıca, lütfen belgelerini okuyun ... "#!" URL'lerini kullanmamanızı tavsiye ederiz. – FakeRainBrigand

+0

Güncelleme için teşekkürler, ona bakacağım. Bir "#!" Kullanma önerisi url'de [email protected] adresinden bir cevap geldi. İki farklı strateji olması mümkün mü? – ritmatter