node.js - 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
因此,如果出现以下情况,则可以重现该问题:
- 该文件是图像而不是文本
- 您尝试通过私有地址(例如 192.168.xx 而不是 127.0.0.1)访问它
解决方案
我不知道根本原因,但它必须与快递有关。
我试过了
python -m SimpleHTTPServer 8090
它奏效了。
我尝试了 fastify,它也有效。
所以现在的解决方法是:不要使用 express.js
推荐阅读
- laravel - 在 laravel 8 中找不到控制器的媒体模型
- php - Laravel POST 路由返回 HTTP 代码 200 但没有创建记录
- excel - 我可以单击 Excel 图表的某个点并突出显示相应的值单元格吗?
- flutter - 将文件上传到 S3 时如何传递 ACL 属性以进行颤振放大?
- javascript - Material-UI 自动完成警告:使用 `getOptionSelected` 属性自定义相等测试
- php - 错误 500 laravel 生产和“/src/Illuminate/Container/Container.php:833 中不存在类视图” nginx 日志错误
- c# - 如何让用户在 WPF 中更改 ImageBrush 的 ImageSource
- c# - ASP.NET Core 5.0 - 在 Azure 中将非 WWW 重定向到 WWW
- actions-on-google - 限制 Google 上的操作不使用标准 Google 助理功能进行响应
- python-3.x - 如何在cpanel中运行预定的python脚本