我的目录是这样设置的:
app.js
views
home.html
css
style.css
我的家庭档案是这样的:
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
</body>
</html>
我的app是这样的:
var io = require('socket.io'),
url = require('url'),
sys = require('sys'),
express = require('express'),
http=require('http');
var app = express();
var server = http.createServer(app);
var socket = io.listen(server);
app.engine('.html', require('ejs').__express);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
app.get('/', function(req, res){
res.render('home');
});
app.listen(4000);
sys.puts('server running ' + 'now ' + Date.now());
问题是,当我运行应用程序时,CSS文件无法加载。
3条答案
按热度按时间relj7zay1#
由于.css文件是静态文件,您必须将其提供给客户端。但是,您不能将静态文件作为快速中间件提供。将以下中间件添加到您的express应用程序中,并将
css
文件夹移动到public
目录下(您应该创建一个public directory
)因此,最终的目录结构应该如下所示
并且不要忘记需要
path
模块pinkon5k2#
在我的一个应用程序中,我在这个文件结构中有这些相关文件:
index.js
包括app.use(express.static(path.join(__dirname, '/public')));
注意/public
。头文件.ejs部分包含
<link rel='stylesheet' type='text/css' href='/stylesheets/main.css' />
注意缺少public,这是中间件隐含的。在您的示例中,静态文件的当前目录与保存静态文件的目录不匹配。
xcitsw883#
试试这个:
这也许能解决问题。