(मुझे पता है इस सवाल का वर्ष है, लेकिन यह Google खोज परिणामों में उच्च प्रकट होता है, और स्वीकार किए जाते हैं जवाब सबसे अच्छा समाधान नहीं है।)
express.js में स्थिर सामग्री ऊपर की सेवा के लिए सबसे अच्छा समाधानexpress.static है। यूआरएल में फ़ाइल एक्सटेंशन निर्दिष्ट करने के लिए आपको लगता है कि यह जब स्थिर फ़ाइलों के लिए खोज का उपयोग करेगा डिफ़ॉल्ट फ़ाइल एक्सटेंशन की सूची के साथ कॉन्फ़िगर कर सकते हैं से बचने के लिए:
app.use(express.static(pathToBaseFolderOfStaticContent, {
extensions: ['html', 'htm'],
... // Other options here
}));
यह pathToBaseFolderOfStaticContent/somePage.html या तक प्रस्तुत कर देगा http://www.example.com/somePage पर जीईटी अनुरोध के जवाब में pathToBaseFolderOfStaticContent/somePage.htm, जो आप चाहते हैं। उदाहरण के लिए, यदि आप https://arcade.ly/star-castle पर जाते हैं, तो यह फ़ाइल केवल एक स्थिर फ़ाइल है जिसे स्टार-castle.html कहा जाता है। मुझे इस, या किसी अन्य स्थिर फ़ाइल के लिए कोई विशेष रूटिंग नहीं जोड़नी पड़ी - यह सब सिर्फ एक्सप्रेस.स्टैटिक द्वारा संभाला गया है।
मुझे केवल उस सामग्री के लिए विशिष्ट मार्ग जोड़ने की आवश्यकता है जिसके लिए सर्वर पर सक्रिय कार्य की आवश्यकता होती है। यहां एक बड़ा फायदा यह है कि मैं अपनी अधिक सामग्री को कैश करने के लिए सीडीएन का उपयोग कर सकता हूं (या nginx अगर मैं व्यवसाय ऐप की आंतरिक रेखा चला रहा था), इस प्रकार मेरे सर्वर पर लोड कम हो जाता है।
आप जितनी चाहें उतनी डिफ़ॉल्ट फ़ाइल एक्सटेंशन को स्पष्ट रूप से कॉन्फ़िगर कर सकते हैं, हालांकि मैं सूची को छोटा रखना चाहता हूं। मैं केवल उन संसाधनों के लिए उपयोग करता हूं जहां यूआरएल पता बार में प्रकट होने की संभावना है, जिसका आमतौर पर एचटीएमएल फाइलों का मतलब है, हालांकि हमेशा नहीं।
यह In express what is the common way to associate a default file extension with static content requests? पर भी उत्तर दिया गया है।
favicon.ico मुद्दा जिसमें से आप स्थैतिक सामग्री की सेवा रूट फ़ोल्डर में अपने फ़ेविकॉन छोड़ने, साथ ही लागू करने + कोस्टा समाधान जहां इसे संदर्भ अपने दस्तावेज़ों के <head>
में एक <link>
का उपयोग करके हल किया जा सकता।
सिद्धांत में आपको रूट फ़ोल्डर में फेविकॉन डालने की आवश्यकता नहीं है, लेकिन व्यावहारिक रूप से, कुछ ब्राउज़र अभी भी साइट रूट से इसके लिए पूछेंगे, भले ही इसे आपके दस्तावेज़ के <head>
में संदर्भित किया गया हो। यह एक नकली 404 त्रुटि की ओर जाता है जिसे आप क्लाइंट साइड डीबगिंग टूल (उदाहरण के लिए, क्रोम देव टूल्स) में देख पाएंगे।
ओह क्षमा करें, और मैं अभी भी उलझन में हूं कि इंडेक्स पेज को कैसे बदला जाए। –
आपको अपने एप्लिकेशन की रूटिंग सेट करने की आवश्यकता है, http://stackoverflow.com/questions/9474951/routing-with-express-js – Swordfish0321