【问题标题】:Serving static files with node express使用 node express 提供静态文件
【发布时间】:2017-12-28 17:09:54
【问题描述】:

背景

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

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

我正在使用 express 监听端口 3001。如果没有附加参数或查询,将返回./html/web_portal.html。我使用 express.static 在./html/icon/ 下放置了我希望静态提供的应用程序徽标、favicon 和其他 img:

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

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

问题

在所有这些实现之后,从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

问题

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

【问题讨论】:

    标签: html node.js apache express


    【解决方案1】:

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

    由于我将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 不是一个好主意

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      相关资源
      最近更新 更多