Node.js未定义的CSS文件

我刚刚创build了一个默认的Node.js Express项目。 index.ejs文件给我的错误:

未定义的CSS文件('/stylesheets/style.css')。

这里是index.ejs:

<!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <p>Welcome to <%= title %></p> </body> </html> 

以下是我认为是来自app.js文件的相关代码:

 var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); 

目录结构如下所示:

在这里输入图像描述

我的理解, app.use(express.static(path.join(__dirname, 'public'))); 应该允许我引用相对目录<link rel='stylesheet' href='/stylesheets/style.css' /> ,但是我仍然得到未定义的css错误。 哪里不对?

编辑:这是我目前的configuration:

app.js

 /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('public', __dirname + '/public'); app.set('view engine', 'ejs'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static('public')); // development only if ('development' == app.get('env')) { // jshint ignore:line app.use(express.errorHandler()); } app.get('/', routes.index); app.get('/users', user.list); app.get('/', function(req, res){ res.render('index.ejs'); }); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

index.ejs:

 <!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <p>Welcome to <%= title %></p> </body> </html> 

尝试

 app.use(express.static(path.join(__dirname, '/public'))); 

要么

 app.use(express.static('public')); 

快递文件在这里

编辑1:

你有一个额外的'/'

 <link rel='stylesheet' href='stylesheets/style.css' /> 

这似乎是一个日食错误。 尽pipe在index.ejs中显示错误,style.css实际上是由页面读取的。

在这里输入图像描述