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

标签 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,所以如果这有任何区别请告诉我。

最佳答案

我可以看到唯一的错误在下面一行。

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/

相关文章:

node.js - 为在 node.js 应用程序上运行的 mongodb 计算 n 个连接池所需的内存

node.js - 如何通过 API 请求将 pdf 发送给客户端

javascript - Skrollr 无法在 Ruby on Rails 4 中工作

node.js - 无法传递 Meteor.settings json 文件

javascript - 如何为具有相同布局的多个 Web 应用程序设计 UI 框架?

node.js - 谷歌数据存储中的 Node 分页

javascript - 路由文件无法在 Express.js 中更新

javascript - 查询修饰符中出现意外标记 ":"

javascript - 如何将 $.map 与 Object.keys 函数一起使用来从为 Object.keys 给出的数组中获取第一个值?

javascript - javascript中取消打印功能后如何重新加载脚本?