首页 > 解决方案 > express 静态主机映像不适用于 IP 地址 192.168.xx

问题描述

这是一个很奇怪的问题:

import express from 'express';

const app1 = express();
app1.use('/', express.static('/Users/tyler.liu/Desktop', {dotfiles: 'allow'}));

app1.listen(8002, '0.0.0.0', () => {
  console.log('http://192.168.1.236:8002/icon.png');
});

192.168.1.236 是我笔记本电脑的 IP 地址。

当我尝试在 Chrome 浏览器中访问http://192.168.1.236:8002/icon.png时:

在此处输入图像描述

Safari浏览器:

在此处输入图像描述

如果我访问http://127.0.0.1:8002/icon.png它可以在两个浏览器中使用

如果我尝试访问文本文件,它也可以工作:http: //192.168.1.236 :8002/temp.txt

因此,如果出现以下情况,则可以重现该问题:

  1. 该文件是图像而不是文本
  2. 您尝试通过私有地址(例如 192.168.xx 而不是 127.0.0.1)访问它

标签: node.jsexpress

解决方案


我不知道根本原因,但它必须与快递有关。

我试过了

python -m SimpleHTTPServer 8090

它奏效了。

我尝试了 fastify,它也有效。

所以现在的解决方法是:不要使用 express.js


推荐阅读