【发布时间】:2019-11-28 02:08:19
【问题描述】:
我正在尝试使用绝对路径使用 res.sendFile 呈现 HTML,但它在 pre 标记中发送编码的 HTML,因此响应显示 HTML 未在 pre 标记中呈现。 这是我的快速代码
app.get('/', (req,res) =>{
res.sendFile(__dirname+'/a.html');
});
这是我的html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>I am Html</h1>
</body>
</html>
这是我导航到 localhost:8800/ 时的结果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>I am Html</h1>
</body>
</html>
它按原样打印html而不渲染它。
【问题讨论】:
-
您是否明确在某处为响应设置标题。例如,在具有
res.setHeader("Content-Type", "text/plain");之类的全局中间件中,这可能是一个原因。虽然没有意义(因为支持的版本是 5 年前出现的),但你使用的是 express 版本 >4.8.0? -
其实,是的。这一直是问题所在。感谢您的帮助