node.js - 无法使用 Node 0.9 和最新的 Express 4.11.2 提供静态目录

标签 node.js express

使用以下简单的 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文件,但是当我将浏览器指向

http://localhost:3000/public/

我明白了

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/

相关文章:

node.js - 使用 Node js 将 S3 视频转换为音频文件(Lambda 函数)

node.js - 使用redis与socket.io和NodeJs构建实时聊天

node.js - sails.js 0.10.0-rc4 无法将消息闪烁到 ejs View

mysql - nodejs连接mysql报错

express - 浏览器不为显式域保存 cookie

node.js - Socket.io、https 和 Express 连续连接/断开循环

javascript - Node.JS、ExpressJS、React 和 HTML JSON 渲染

windows - Node.js windows 服务,无法从服务生成 GUI 应用程序

javascript - 使用worker启动Node.js项目

node.js - Express 下更复杂的静态文件服务