如果您点击此链接: http://kenCode.de/kenCode.asc
您的浏览器会尝试下载该文件,而不是为需要阅读它的api和网站显示该文件的文本内容。
Mime类型,对吗?知道如何告诉我的nodejs服务器这样做吗?
答案 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