使用node express提供静态文件

时间:2017-12-20 14:59:31

标签: html node.js apache express

背景

我在https://jienan.xyz/m上提供webapp,在Apache中我将链接重定向到localhost:3001 / memo with

ProxyPass /m http://localhost:3001/memo
ProxyPassReverse /m http://localhost:3001/memo

我正在收听3001号快递。如果未附加参数或查询,则会返回./html/web_portal.html。我放置了app logo,favicon和其他imgs,我希望在./html/icon/下使用express.static静态服务:

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

在门户网站html中,我将img的链接引用到<img ... src="/icon/ic_pullsh.png"/>

问题

在所有这些实现之后,从domain访问时无法加载imgs。我可以看到img有链接https://jienan.xyz/icon/ic_pullsh.png

如果我使用IP地址http://130.211.211.220:3001/memo,可以看到img,地址为http://130.211.211.220:3001/icon/ic_pullsh.png

问题

如何更改实施以静态提供文件,以使其在域中可见?

1 个答案:

答案 0 :(得分:0)

我发现的并不是一个非常聪明的答案。

由于我将jienan.xyz/m重定向到localhost:3001/memo,因此指向静态文件的正确格式应为https://jienan.xyz/m/icon/ic_pullsh.png,并且会将其重定向到http://130.211.211.220:3001/memo/icon/ic_pullsh.png

会发生什么情况,它会在{\ t {1}}文件夹中找到该png。因此,我必须声明在Express中的./html/memo/icon/下提供静态文件,并将所有文件放在/html/下。

首先将请求重定向到/ memo并不是一个好主意