即使使用express.static,NodeJS也不会提供静态文件

我有以下几点:

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例如,我仍然得到:

无法GET /public/myfile.css我的index.jade模板似乎无法调用文件

为什么是这样?

我不认为提供这样的path是支持的:

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

试试这个,并在根目录中查找你的公共文件:

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

所以/public/myfile.css变成/myfile.css

重要的是在app.use(express.static(__dirname + '/public'))语句的位置…

我有一个问题,当它也没有工作,当我不小心把这个./middle-conf.js文件,后来被导入为var configure = require('./middle-conf) ,然后快速应用程序被传递进入这个configure(app)

所以表示中间件的处理顺序并不正确。

这工作正常…

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

并在您的HTML页面访问它像这样..

 <script src="/public/yourcodes.js"></script>