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

Ale*_*lex 7 node.js express

我有以下几点:

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'});
});
Run Code Online (Sandbox Code Playgroud)

然而,当我访问/public/myfile.css时,我仍然得到:

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

为什么是这样?

Lin*_*iel 14

我认为不支持提供这样的路径:

app.use("/public", express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

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

app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)

因此/public/myfile.css变得/myfile.css.

  • 这个答案是对的.`app.use("/ public",express.static(__ dirname +'/ public'));`支持.检查app.use定义:https://github.com/senchalabs/connect/blob/master/lib/proto.js#L61其他一些内容被破坏了. (22认同)