Node.js Can';t使用节点0.9和最新的express 4.11.2提供静态目录

Node.js Can';t使用节点0.9和最新的express 4.11.2提供静态目录,node.js,express,Node.js,Express,使用以下简单节点服务器 var express = require('express'); var app = express(); var path = require('path'); app.use(express.static(path.join(__dirname, 'public'))); // "public" off of current is root app.listen(3000); console.log('Listening on port 3000'); 当然,我

使用以下简单节点服务器

var express = require('express');
var app = express();
var path = require('path');
app.use(express.static(path.join(__dirname, 'public'))); //  "public" off of current is root
app.listen(3000);
console.log('Listening on port 3000');
当然,我在我的根目录中放了一个“public”目录,还删除了一个index.html文件,但当我将浏览器指向

我明白了

无法获取/公开/


这一次也让我在开始使用express时感到惊讶

http://localhost:3000/public/
将无法访问

例如,假设您在公共目录中有一个
css
文件夹,其中包含一个名为
styles.css

您的浏览器可以在
http://localhost:3000/css/styles.css

express.static上的express文档可在以下位置找到:

编辑1:请参见此


编辑2:@Leonid Beschastny答案正确,我没有看到
app.use(express.static(path.join(uu dirname,'public'))中缺少文件夹路径

问题在于如何安装
express.static
中间件。在您的示例中,您正在将其装载到应用程序的根目录中

因此,在您的示例中,您应该能够从
http://localhost:3000/

因此,您只需为
express.static
中间件指定一个安装点:

app.use('public', express.static(path.join(__dirname, 'public')));
您还应该记住,
express.static
没有默认的索引页。因此,如果您的
public
目录中没有
index.html
,您将得到404(
express.static
不会像
apache
do那样列出您的文件)。

可能重复的