के साथ इस्तेमाल किया जब मैं अपने अन्य सभी मार्गों के साथ ही इस मार्ग का उपयोग मान्यता प्राप्त नहीं, कि स्टैटिक फ़ाइलें अच्छी तरह से सेवा की है:Node.js/Expess.js। स्टेटिक रूटर है जो वाइल्डकार्ड रूटर
var public_dir = path.join(__dirname, 'public');
app.use('/public', express.static(public_dir));
लेकिन जब मैं इन पंक्तियों के नीचे जोड़ने - सभी अनुरोधों को इस के साथ पकड़ कर रहे हैं रूटर (नहीं पिछले एक):
app.get('/*', function(req, res){
res.redirect('/#!' + req.path);
});
यह क्योंकि /public
परिभाषा पहले आता है, मेरे लिए अजीब बात है। लेकिन सभी अनुरोध अंतिम /*
अनुरोध हैंडलर को परिभाषित करने के लिए जाते हैं।
अब, यदि मैं पृष्ठ http://127.0.0.1:3000/public/website/application.js
खोलने का प्रयास करता हूं तो मैं http://127.0.0.1:3000/#!/public/website/application.js
पर रीडायरेक्ट हो जाता हूं। ऐसा क्यों होता है, और इस स्थिति को सर्वोत्तम तरीके से कैसे हल किया जाए?
बहुत बहुत धन्यवाद!
समाधान सरल है। मैं midwares की सूची में काम कथन नहीं कर रहा है।
app.use(app.router);
यह वह जगह है यूआरएल मार्ग की एक समस्या पैदा करता है। लेकिन यह अजीब बात है कि node.js
ने मुझे मिडलवेयर के "गलत सेटअप" के बारे में नहीं बताया।
पर आप पहली बार और app.get साथ app.use उपयोग कर रहे हैं दूसरे के साथ ..? – DrCord
@DrCord के रूप में उल्लेख किया गया है, ऐप। [Get | post | put | etc] विधियों को राउटर में जोड़ा जाता है। इसलिए, यदि आप पहले अपने राउटर को माउंट करते हैं, तो इसका पहले उपयोग किया जाएगा। –
निक की तरह राउटर की स्थिति और स्थैतिक निर्णय प्राथमिकता की तरह। कृपया दिखाएं कि आप राउटर और स्थिर (रिश्तेदार पदों) का उपयोग कैसे करते हैं। – user568109