Node.js webserver;显示pgp asc文件的内容,不提示下载

时间:2014-10-27 18:31:42

标签: javascript webserver download

如果您点击此链接: http://kenCode.de/kenCode.asc

您的浏览器会尝试下载该文件,而不是为需要阅读它的api和网站显示该文件的文本内容。

Mime类型,对吗?知道如何告诉我的nodejs服务器这样做吗?

1 个答案:

答案 0 :(得分:0)

您需要设置Content-Type标头。如果你得到" Content-Type"标题设置正确,您的浏览器将显示该文件而不是提供下载。

curl --head http://kencode.de/kenCode.asc

我可以看到目前的内容类型是

Content-Type: application/pgp-signature

浏览器倾向于提供保存应用程序文件类型,但显示text/plain文件类型。 这是w3 documentation on Content-Type解释了为什么" text / plain"适用于此以及为什么需要字符集。

node.js documentation开始,看起来这样做的方式是:

response.setHeader("Content-Type", "text/plain;charset=UTF-8");

如果您无法直接在文件中修改响应,则必须配置Web服务器以便为您执行此操作。 Web服务器通常在Web应用程序未明确提供文件类型时根据其扩展名映射文件类型。例如,如果您使用的是Apache服务器,则可以将其添加到 .htaccess 文件中以解决问题:

AddType text/plain;charset=UTF-8 .asc