使用以下简单节点服务器
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');
我当然在我的root中放了一个'public'目录,并在其中删除了一个index.html文件,但当我指向浏览器时
我得到了
无法GET / public /
答案 0 :(得分:0)
从快递开始,这个也引起了我的注意。
无法访问 http://localhost:3000/public/
。
例如,假设您在公共目录中有一个css
文件夹,其文件名为styles.css
您的浏览器可以http://localhost:3000/css/styles.css
访问该文件。
有关express.static的快速文档,请访问:app.use (under the two example tables)
编辑1:请参阅此answer here。
编辑2:@Leonid Beschastny回答是正确的,我没有看到app.use(express.static(path.join(__dirname, 'public')));
答案 1 :(得分:0)
问题在于您如何安装express.static
中间件。在您的示例中,您将其安装到应用程序的根目录。
因此,在您的示例中,您应该能够从/public
访问http://localhost:3000/
目录的内容。
因此,您只需要为express.static
中间件指定一个挂载点:
app.use('public', express.static(path.join(__dirname, 'public')));
您还应该记住express.static
没有默认索引页面。因此,如果您的index.html
目录中没有public
,那么您无论如何都会得到404(express.static
不会像apache
那样列出您的文件。