जवाबों:
आप ऐसा पथ भी सेट कर सकते हैं, जिससे वेब पर स्थिर (पहले) पैरामीटर को निर्दिष्ट करने के लिए स्थिर फ़ाइलों को use()
पसंद किया जा सके:
app.use("/public", express.static(__dirname + "/public"));
app.use("/public2", express.static(__dirname + "/public2"));
इस तरह से आपको वेब पर दो अलग-अलग निर्देशिकाएं मिलती हैं जो आपके स्थानीय निर्देशिकाओं को प्रतिबिंबित करती हैं, न कि एक यूआरएल मार्ग जो दो स्थानीय निर्देशिकाओं के बीच विफल हो जाता है।
दूसरे शब्दों में URL पैटर्न:
http://your.server.com/public/*
स्थानीय निर्देशिका से फ़ाइलें सेवित public
करते समय:
http://your.server.com/public2/*
स्थानीय निर्देशिका से फ़ाइलें सेवित करता है public2
।
BTW यह भी उपयोगी है अगर आप अपने सर्वर की जड़ से फ़ाइलों को सेवा करने के लिए स्थिर नहीं करना चाहते हैं, बल्कि एक अधिक योग्य पथ से।
HTH
"homepage": "/public"
और "homepage": "/public2"
संबंधित प्रतिक्रिया एप्लिकेशन की package.json करने के लिए। दो प्रतिक्रिया ऐप्स का उपयोग करने के बारे में अधिक जानकारी के लिए मेरा उत्तर यहां देखें stackoverflow.com/a/48569896/4746648
shared
फ़ोल्डर ताकि आप उपयोग कर सकते हैं "./"
और "./shared"
और आप आसानी से कर सकते हैं शेयर js फ़ाइलों बूम: 3 धन्यवाद
आप किसी एकल दृश्य निर्देशिका में "मर्ज" निर्देशिका भी कर सकते हैं
निर्देशिका संरचना
/static
/alternate_static
कोड
app.use("/static", express.static(__dirname + "/static"));
app.use("/static", express.static(__dirname + "/alternate_static"));
दोनों स्थिर और वैकल्पिक_स्टैटिक की सेवा की जाएगी जैसे कि वे एक ही निर्देशिका में थे। फ़ाइल नाम क्लोबर्स के लिए बाहर देखो, यद्यपि।
main.js
है तो static/
इसमें देखना जारी नहीं रहेगा alternate_static/
।
alternate_static
को कभी भी सेवित होने की अपेक्षा कर रहे थे तो यह अभी भी एक क्लोब है ।
यह एक मिडलवेयर इंजेक्शन द्वारा संभव नहीं है, लेकिन आप static
मिडलवेयर को कई बार इंजेक्ट कर सकते हैं :
app.configure('development', function(){
app.use(express.static(__dirname + '/public1'));
app.use(express.static(__dirname + '/public2'));
});
व्याख्या
पर देखो कनेक्ट / lib / मिडलवेयर / static.js # 143 :
path = normalize(join(root, path));
नहीं है options.root
स्थिर जड़ है, जो आप में परिभाषित है express.static
या connect.static
कॉल, और path
अनुरोध मार्ग है।
पर अधिक देखो कनेक्ट / lib / मिडलवेयर / static.js # 154 :
fs.stat(path, function(err, stat){
// ignore ENOENT
if (err) {
if (fn) return fn(err);
return ('ENOENT' == err.code || 'ENAMETOOLONG' == err.code)
? next()
: next(err);
पथ केवल एक बार चेक किया गया था, और यदि फ़ाइल नहीं मिली तो अगले मिडलवेयर को पास किया गया अनुरोध।
कनेक्ट 2.x के लिए अद्यतन
कनेक्ट 2.x के लिए कोड के लिंक निष्क्रिय हैं, लेकिन कई स्थिर मिडलवेयर उपयोग अभी भी पहले की तरह ही सकारात्मक हैं।
const express = require('express');
const path = require('path');
const pagesPath = path.join(__dirname, '/cheatsheet');
const cssPath = path.join(__dirname, '/stylesheet');
const port = process.env.PORT || 3000;
var app = express();
app.use("/cheatsheet" ,express.static(pagesPath));
app.use("/stylesheet",express.static(cssPath));
app.get('/',(request,response)=>{
response.send('Hello CSS!!!');
});
app.get('/bad',(request,response)=>{
response.send({error: 'Bad Request'});
});
app.listen(port, ()=> {
console.log(`Server is running on Port ${port}` );
console.log(__dirname);
});
// folder structure
/cheatsheet/index.html
/stylesheet/style.css