htmlpath 之外的 Nodejs 图像不起作用

Nodejs image outside htmlpath does not work

我正在使用 nodejs 在用户个人资料页面上工作,用户可以在登录后看到自己的头像。用户可以将文件上传到常规 htmlpath 之外的上传文件夹。我有以下文件夹结构:

这些是 app.js 中 htmlpath 的设置:

app.use(require('serve-static')(path.join(__dirname, 'public')));
app.use(require('method-override')());
app.use(express.static('public'));

在客户端,我使用图像的相对路径:

<img src="../uploads/eps/euro-pool-1501781922012.jpg" class="img-circle profile-avatar" alt="User avatar" data-pin-nopin="true"> 

我也试过

 <img src="./uploads/eps/euro-pool-1501781922012.jpg" class="img-circle profile-avatar" alt="User avatar" data-pin-nopin="true"> 

但是当我导航到该页面时它无法显示图像并且我得到以下错误:

GET http://192.168.2.20:3000/uploads/eps/euro-pool-1501781922012.jpg 404 (Not Found)

我有两个问题:

  1. 是否可以访问 htmlpath 之外的文件?
  2. 如何在不将整个文件夹移动到 public 文件夹的情况下解决此问题?

非常感谢,

埃里克

可以,如果您不想限制对该文件夹的访问,您可以设置两个不同的目录来提供静态文件:

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

在这种情况下,图像的路径应从 /uploads:

开始
<img src="/uploads/eps/euro-pool-1501781922012.jpg" ...