使用node express提供静态文件
Background
我在/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"/>
的链接
Problem
完成所有这些实现后,从domain访问时无法加载imgs。我可以看到img有链接/icon/ic_pullsh.png
。
如果我使用ip地址http://130.211.211.220:3001/memo,可以看到img,地址为http://130.211.211.220:3001/icon/ic_pullsh.png
。
Question
如何更改实现以静态提供文件,以使其在域中可见?
回答如下:在我看来,我发现的并不是一个非常聪明的答案。
由于我将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
。
会发生什么,它将在./html/memo/icon/
文件夹中查找该png。所以我必须声明在express中的/html/
下提供静态文件,并将所有文件放在/html/memo/
下。
也许最初将请求重定向到/ memo不是一个好主意