NodeJS Express下载文件而不是将其用作HTML

fkaflof6  于 2023-08-04  发布在  Node.js
关注(0)|答案(2)|浏览(105)

我正在尝试使用Express创建自己的服务器。我试图提供一个HTML文件,但是当我在上面运行res.send()时,它下载了这个文件。下面是我的代码片段:

res.send(fs.readSync(path.join(__dirname, "pages/login.html")))

字符串
当我转到该页面时,它不是呈现文件,而是下载文件。如果这改变了任何东西,这个页面将从“/”页面重定向到。

**更新:**清除该高速缓存修复问题。

7nbnzgx9

7nbnzgx91#

您可能忘记将Content-Type头设置为text/html,因此浏览器不知道它正在接收它应该呈现的HTML文档。

res.set('Content-Type', 'text/html')

字符串
......根据文件。
也就是说,如果您正在处理静态文件,那么您可能应该使用the static module,而不是滚动自己的处理程序。

webghufk

webghufk2#

使用res.end而不是res.send。

res.set('Content-Type', 'text/html')
res.end(fs.readSync(path.join(__dirname, "pages/login.html")))

字符串
或者把html读成字符串。

res.set('Content-Type', 'text/html')
res.send(fs.readSync(path.join(__dirname, "pages/login.html"), "utf8"))

相关问题