无法在Node.js应用中提供样式表

时间:2015-01-29 16:01:23

标签: javascript node.js

我正在学习Node.js和Express(版本4.11)。目前,我正在尝试创建一个使用样式表的基本Web应用程序。为了做到这一点,我有以下HTML:

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="Description">
    <meta charset="UTF-8">

    <link rel="stylesheet" type="text/css" href="/public/fonts/icomoon.css" />
    <link rel="stylesheet" type="text/css" href="/public/css/style.css" />
</head>
<body>
  <h1 class="title">Test</h1>
</body>
</html>

加载此HTML后,我的icomoon.css文件和style.css文件出现404错误。我感到很困惑,因为我已经跟踪了SO上的其他类似帖子。我的server.js文件如下所示:

var express = require('express');                   // routing-engne
var expressHbs = require('express-handlebars');     // view-engine

// Setup the app to use Handlebars as the view engine
var app = express();
app.engine('hbs', expressHbs({extname:'hbs', defaultLayout:'layout.hbs'}));
app.set('view engine', 'hbs');

// Add support for static files (css, fonts, images, etc.)
app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res) {
    var viewModel = {};
    res.render('/index', viewModel);
});

// Start the app on port 3000
app.listen(3000);
console.log('Ready!');

我认为写为app.use(express.static ...的行会提供我的静态文件。但事实并非如此。我如何提供我的.css文件?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用此:

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