浏览器下载HTML文件而不是打开它

4
我使用 Node.JS express 创建了一个服务器,其中我在 public 文件夹中打开了 HTML 文件。
app.use(express.static(__dirname + '/public'));
app.listen(8080);

我以前做过类似的事情,没有遇到任何问题。但是在这个项目中,当我尝试在127.0.0.1:8080打开服务器时,它会自动下载index.html文件。我尝试使用不同的浏览器,但结果都一样。

更新
我能够在Edge中打开HTML文件。但是非常缓慢,好像在处理某些东西。当我向服务器发送请求时,它卡住了。
我尝试单独使用浏览器打开HTML文件,没有任何问题。
并且尝试给出另一个HTML文件位置,结果也是一样的。


2
你配置了视图引擎吗? - Jonathan Nielsen
@AnmolMittal 我不被允许展示我的代码。 - Lasitha Yapa
3
请检查内容类型标头,可能没有正确设置,应该类似于这样:content-type:text/html; - Marcin
@td-lambda 我的代码里没有使用这样的选项。我应该在哪里添加它? - Lasitha Yapa
当内容类型不正确时,浏览器会执行此操作。您应该通过在Chrome中打开页面并检查报头来检查内容类型。还可以查看这个 - Marcin
显示剩余2条评论
2个回答

1
我不知道这里的确切问题是什么。但我知道它与内容类型有关,正如评论中提到的td-lambda。所以我找到了一个解决方案。
var express = require('express');
var app = express();
var server = app.listen(8080);
app.set({
     'Content-Type': 'text/html'
});
app.use(express.static(__dirname + '/public'));

这解决了我的问题。


-2
这是因为您的内容类型最初是application/js,所以它呈现为一个应用程序。
将其转换为texthtml,它将正确呈现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接