Express:子文件夹路径有问题

Express: subfolder paths having issues

我有一个项目,既可以作为独立文件夹下载(否 Node/Express),也可以 运行 直接从文件系统中下载,并在本地环境(本地主机使用 node/express)。现在我的文件系统看起来像这样:

main folder
  client
    images
      Image1.png
      Image2.jpeg
    sounds
      Sound1.mp3
      Sound2.wav
    js
      loader.js
      Engine.js
      ...
    main.mjs
    index.html
  
  app.js
  node_modules
    ...
  package.json
  package-lock.json

我需要客户端文件夹本身是 运行,从文件系统加载,所以转到 localhost 或打开 index.html 文件做同样的事情。但是,现在我需要更改客户端文件夹中的每个 link 才能正常工作。

例如,在 loader.js 中,我有一行看起来像这样:

Image1 = new Image();
Image1.src = '/client/images/image1.png'

但是当运行作为独立文件时,它需要是:

Image1 = new Image();
Image1.src = '../images/image1.png'

如何设置我的快速服务器来处理第二种情况并将其视为第一种情况?现在它不会发送文件,只会用 404 响应任何请求的文件,索引除外。它看起来像这样:

const express = require('express');
const app = express();
const server = require('http').Server(app);

app.get('/',(req, res) => {
    res.sendFile(__dirname + '/client/index.html');
})

app.use('./', express.static(__dirname + '/client'));
app.use('../', express.static(__dirname + '/client'));

const port = process.env.PORT || 2000;

server.listen(port);

我是表达新手,所以请多多指教。

事实证明,这是一个简单的修复,只需使用:

app.use(express.static(__dirname + '/public'));

创建虚拟路径是问题所在,因此通过省略第一个参数,现在一切正常。

./指的是当前目录,../是上一层,/js是js文件夹。