使用以下简单的 Node 服务器
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文件,但是当我将浏览器指向
我明白了
Cannot GET /public/
最佳答案
问题在于如何安装 express.static
中间件。在您的示例中,您将其安装到应用程序的根目录。
因此,在您的示例中,您应该能够从 http://localhost:3000/
访问 /public
目录的内容。
因此,您所需要做的就是为 express.static
中间件指定一个安装点:
app.use('public', express.static(path.join(__dirname, 'public')));
您还应该记住,express.static
没有默认索引页。因此,如果您的 public
目录中没有 index.html
,您无论如何都会得到 404(express.static
不会像 apache
那样列出您的文件)。
关于node.js - 无法使用 Node 0.9 和最新的 Express 4.11.2 提供静态目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327084/