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文件夹。
我有一个项目,既可以作为独立文件夹下载(否 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文件夹。