我遇到过很多像这样的问题,但看起来我做错了什么。问题是我无法加载静态文件。
文件夹结构:
/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
有什么遗漏吗?
谢谢!
PS:使用express ^ 4.13.4&amp; node v5.10.1
答案 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')));