快递 - 无法提供静态文件(404错误)

时间:2016-04-30 19:33:37

标签: node.js express

我遇到过很多像这样的问题,但看起来我做错了什么。问题是我无法加载静态文件。

文件夹结构:

/client
    index.html
    /assets
        /css
            main.css
/server
    app.js

app.js:

var assetsPath = path.join(__dirname, '../client/assets');
app.use(express.static('assetsPath'));

app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname, '../client/' + 'index.html'));
});

app.listen(PORT, function () {
    console.log('\nListening on port 8080!');
});

的index.html

<link rel="stylesheet" href="/css/main.css">

然而,当在浏览器中加载页面时,我在http://localhost:8080/css/main.css

上获得了404

有什么遗漏吗?

谢谢!

PS:使用express ^ 4.13.4&amp; node v5.10.1

2 个答案:

答案 0 :(得分:4)

你的express.static()函数中有一个拼写错误。

var assetsPath = path.join(__dirname, '../client/assets');
app.use(express.static('assetsPath'));

应该是

var assetsPath = path.join(__dirname, '../client/assets');
app.use(express.static(assetsPath));

答案 1 :(得分:0)

express.static接受静态文件的路径,因此您可以使用以下行简化:

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