我正在尝试为我的index.html 文件和其他文件夹(如css、img 和js 脚本)设置一个静态文件夹。 但我无法成功设置静态文件夹。 这是我的 app.js 代码:
const path = require('path');
const express = require('express');
const app = express();
app.use(express.static(path.join(__dirname, 'httpdocs')))
// app.get('/', (req, res) => {
// res.sendFile('index.html')
// });
const PORT = process.env.PORT || 5000
app.listen(PORT, (err) => {
if (err) {
console.log(err);
}
console.log(`Listening on port ${PORT}`);
})
我的文件树是这样的:
---node/
------httpdocs (i want this to be static folder
---css/
---js/
---img/
--index.html (this file should be loaded when loading the root link)
---app.js (nodejs script)
p.s:我在 Windows 上使用 plesk,所以如果这有任何区别请告诉我。
最佳答案
我可以看到唯一的错误在下面一行。
app.use(express.static(__dirname + 'httpdocs'))
尝试使用控制台打印以下两种不同的方法:
console.log(__dirname+ 'httpdocs');
console.log(path.join(__dirname, 'httpdocs'));
输出:
...\nodehttpdocs
...\node\httpdocs
希望你能得到解决方案。
如果您尝试手动合并路径,则必须在外部添加路径分隔符“\”
Ex: app.use(express.static(__dirname + '\httpdocs'));
或者使用下面的方法
Ex: app.use(express.static(path.join(__dirname, 'httpdocs')));
我建议使用path.join方法。因为它会根据操作系统添加路径分隔符。否则您必须手动管理。
关于javascript - 无法设置静态文件夹express.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54971984/