我是Nodejs的新手,我正在使用express关注Plurals的Noderalss课程。 我有以下代码:
var express = require('express');
var app = express();
var port = 5000;
app.use(express.static('public'));
app.get('/', function (req, res) {
res.send('Hello World');
});
app.get('/books', function (req, res) {
res.send('Hello Books');
});
app.listen(port, function (err) {
console.log('running server on port ' + port);
});
然后从命令行运行以下命令: $ npm start
这是我的json文件:
{
"name": "library",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.14.0"
}
}
现在我遇到的问题是,当我从浏览器中输入:localhost:5000一切都很好。我看到了我的Hello World文本。但是当我试图去公共文件夹下,例如localhost:5000 / css / style.css时,我收到以下错误信息。
Cannot GET /css/style.css
答案 0 :(得分:0)
如果你想:
localhost:5000/css/style.css
服务于:
app.use(express.static('public'));
然后,您需要确保style.css位于:
public/css/style.css
其中public/css/style.css
相对于当前工作目录进行评估。
您没有透露您的文件层次结构,但如果localhost:5000/css/style.css
无法正常工作,那么显然style.css
无法正确定位public/css/style.css
或您的public
目录不在适当的位置。
app.use(express.static('public'));
告诉express查找相对于public
目录的请求文件。因此,/css/style.css
会查找public/css/style.css
的请求。
此外,app.use(express.static('public'));
假设您希望它查找的public
目录在运行app.use()
语句时相对于工作目录,因此您需要确保它是也是正确的,或者您需要在express.static()
语句中设置绝对路径,这样您就不会依赖当前的工作目录。