2015-01-28 11 views
6

के लिए ReactJS के साथ prerender.io का उपयोग करके मुझे एहसास हुआ है कि प्रतिक्रिया-राउटर का उपयोग कर मेरे ReactJS एप्लिकेशन में कोई बाहरी लिंक नहीं है। खोज इंजन यह नहीं पहचानते कि साइट पर बहुत सी जुड़ी सामग्री है। Prerender.io इस के लिए एक अच्छा समाधान की तरह लगता है, लेकिन मैं इसे अपने ReactJS आवेदन के लिए काम नहीं कर सकता।एसईओ

ReactJS के साथ prerender.io का उपयोग किया जा सकता है? यदि नहीं, तो क्या मेरे प्रतिपादन सर्वर-साइड किए बिना मेरी साइट के लिए एसईओ को बेहतर बनाने का एक और अच्छा तरीका है?

संपादित करें: आगे खोदने पर, मुझे एहसास हुआ कि यहां मुद्दा यह है कि प्रतिक्रिया-राउटर डिफ़ॉल्ट रूप से "#" का उपयोग करता है, न कि "#!"। क्या "#!" के साथ प्रतिक्रिया-राउटर काम करना संभव है?

+0

उत्सुक, मैं एक प्रतिक्रिया डेवलपर नहीं हूं, लेकिन मैं देख सकता हूं [प्रतिक्रिया-spa.herokuapp.com] (http://react-spa.herokuapp.com/discussions) html5mode प्रतिक्रिया-रूटिंग –

+0

@ritmatter के साथ काम कर रहा है वैसे हम भी इस मुद्दे का सामना कर रहे हैं जबकि हम ReactJs एप्लिकेशन पर काम कर रहे हैं जिसके लिए एसईओ अनुकूलन की भी आवश्यकता है। कृपया हमारे रिस्पॉज बॉयलर प्लेट को चेकआउट करें जिसका उपयोग हम एसईओ स्वतंत्र रूप से वेब ऐप्स बना सकते हैं। https://github.com/Atyantik/react-pwa/। –

उत्तर

2

प्रीरेंडर असली यूआरएल की अपेक्षा करता है, क्योंकि अन्यथा आप सामान्य लोगों को कैश किए गए एचटीएमएल की सेवा नहीं कर सकते हैं (हैश सर्वर पर नहीं भेजा गया है)।

जब आप सेट करना प्रतिक्रिया रूटर सुनिश्चित करें कि यह इतिहास मोड का उपयोग कर रहा है:

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

अपने सर्वर में आप यह सुनिश्चित करें कि सभी मार्गों कि एक स्थिर फ़ाइल से मेल नहीं खाते या तो भेजने सूचकांक द्वारा सेवा कर रहे हैं की आवश्यकता होगी एचटीएमएल, या प्रीरेंडर का उपयोग कर।

आप इस पर विवरण खोजने के लिए 'index.html {insert server name}} के सभी अनुरोधों को खोज सकते हैं।


ऐसा लगता है कि डिफ़ॉल्ट प्रीरेंडर केवल कुछ स्थितियों में लागू होता है। यहाँ एक उदाहरण है आप Node.js में express.js मिडलवेयर उपयोग कर रहे हैं:

आप अन्य मिडलवेयर के लिए इसी तरह के संशोधनों यह पता लगाने में सक्षम होना चाहिए (यह कम लचीला भाषाओं में एक कांटा की आवश्यकता होगी)।

+0

मैंने कोशिश की, लेकिन यह अभी भी काम नहीं कर सका। प्रीरेंडर को जाहिर हैश के बजाय हैशबैंग के साथ काम करना है, लेकिन मैं इसे इस तरह से काम नहीं कर सका। – ritmatter

+0

@ritmatter, मैंने अपना जवाब अपडेट किया। साथ ही, कृपया उनके दस्तावेज़ पढ़ें ... वे स्पष्ट रूप से '#!' Urls का उपयोग न करने की अनुशंसा करते हैं। – FakeRainBrigand

+0

अद्यतन के लिए धन्यवाद, मैं इसे देख लूंगा। "#!" का उपयोग करने की सिफारिश यूआरएल में [email protected] से एक जवाब में आया था। क्या यह संभव है कि दो अलग-अलग रणनीतियां हों? – ritmatter

संबंधित मुद्दे