无法设置静态文件夹express.js

时间:2019-03-03 18:03:12

标签: javascript node.js express plesk

我正在尝试为我的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,所以如果这有什么不同,请告诉我。

1 个答案:

答案 0 :(得分:1)

我看到的唯一错误是在下面的行中。

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方法。因为它将基于操作系统添加路径分隔符。否则,您必须手动进行管理。