Express静态文件服务器nodejs

3

public目录下有一个style.css文件,但是我似乎无法让express静态文件选项正常工作。我已删除express并执行了npm install express,但仍然无法正常工作。我只得到一个404错误。

var express = require('express')
  , app = express.createServer();

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

app.listen(8080, "127.0.0.1");

我已经添加了一个app.get()块以确保express正常运行,但我仍然无法请求静态文件。

3个回答

32

我多次忽略的一个重要细节是,在您提供的静态内容的URL中并没有包含“public”。

Alfred的示例解释得很清楚,但很容易被忽略。README文件的位置不是localhost:8080/public/README,而只是localhost:8080/README。


2
完全错过了这一点。我刚刚花了一个小时试图弄清楚为什么从localhost:8080/public/获取的所有内容都给了我404错误。感谢您的提醒。 - user1438940

15

对我来说完全没问题。

app.js

var express = require('express')
  , app = express.createServer();

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

app.listen(8080, "127.0.0.1");

mkdir public
cd public
touch README

自述文件

test

$ curl http://localhost:8080/README
test

$ npm ls
connect@1.6.1
express@2.4.4

重新安装了Node.js,现在一切都很顺利,谢谢。也许是过时的原因?不管怎样,现在它可以工作了。 - Lime
非常好:)。它可能已经过时;).. Node.js API 的变化,以及 express API... - Alfred

1

1
如果您想让localhost:8080/public/正常工作,则需要执行以下操作:app.use('/public', express.static('public')); - Nick Sotiros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接