2012-03-10 11 views
5

मैं निम्नलिखित की तर्ज पर कुछ है: फिर भीNodeJS स्टैटिक फ़ाइलें में काम करेगा नहीं, तब भी जब express.static का उपयोग कर

var request = require('request'), 
    express = require('express'); 

var app = express.createServer(); 

var port = process.env.PORT || 8080; 

app.configure(function(){ 
    app.set("view options", { layout: false, pretty: true }); 
    app.use(express.favicon()); 
    app.use("/public", express.static(__dirname + '/public')); 
    } 
); 

app.listen(port); 

// Routes 
app.get('/', function(req, resp){ 
    resp.render('index.jade', {pageTitle: 'Some title'}); 
}); 

, जब मैं उदाहरण के लिए /public/myfile.css पर जाते हैं, मैं अभी भी मिलती है:

/public/myfile.css मेरे index.jade टेम्पलेट्स नहीं मिल सकता फ़ाइलें या तो

ऐसा क्यों है कॉल करने के लिए प्रतीत नहीं कर सकते हैं?

उत्तर

12

मैं उस तरह पथ की आपूर्ति नहीं लगता कि समर्थित है:

app.use("/public", express.static(__dirname + '/public')); 

इस प्रयास करें, और जड़ में अपने सार्वजनिक फ़ाइलों को ढूँढेंगे:

app.use(express.static(__dirname + '/public')); 

तो /public/myfile.css/myfile.css हो जाता है।

+0

लेकिन अभी भी काम करने के लिए/सार्वजनिक बिट के लिए मजबूर करने के लिए एक रास्ता है? मेरा ऐप मुख्य मार्ग के पैरामीटर के बाद/जो भी है उसके बाद उपयोग करता है ... तो, – Alex

+1

पर इस समय एक लूप में फंस गया है तो अपनी 'सार्वजनिक' निर्देशिका में 'सार्वजनिक' निर्देशिका डालें, या अपने मार्गों को माउंट करें स्थिर के बाद। –

+20

यह उत्तर गलत है। 'app.use ("/public ", express.static (__ dirname + '/ public')); 'समर्थित है। app.use परिभाषा को चेक करें: https://github.com/senchalabs/connect/blob/master/lib/proto.js#L61 कुछ और टूटा हुआ था। – ibash

1

महत्वपूर्ण भी है जहां app.use(express.static(__dirname + '/public')) बयान की स्थिति ...

मैं एक समस्या थी, जब यह था और न ही काम कर जब मैं इस एक ./middle-conf.js फ़ाइल जो बाद में था में गलती से डाल दिया है var configure = require('./middle-conf) के रूप में आयात किया गया और फिर एक्सप्रेस ऐप को इस configure(app) में पारित किया गया था।

तो एक्सप्रेस मध्यम-वेयर प्रसंस्करण आदेश सही ढंग से काम नहीं कर रहा था।

0

इस ठीक काम करता है ...

app.use("/public", express.static(__dirname + '/public')); 

और अपने HTML पृष्ठों में यह इस तरह का उपयोग ..

<script src="/public/yourcodes.js"></script> 
संबंधित मुद्दे