我是否有理由不将内容类型作为二进制文件发送给所有内容?我对正确的http有点天真但它似乎适用于一切。我将以这种方式遇到的一些陷阱是什么?
答案 0 :(得分:4)
如果您将样式表作为内容类型二进制发送,IE9将不会呈现它。它拒绝呈现任何非text / css的样式表。这可能足以阻止人们使用IE9访问您的网站。
更不用说其他好处,例如浏览器根据用户偏好处理特定内容类型的方式不同。
修改强> 在这里,您可以使用它,它将更容易确定内容类型。该模块将有两种方法。 getExt和getContentType。如果将扩展名传递给getContentType,它将返回该文件的Content-Type。我不是编译所有内容类型的人,不幸的是我忘记了我找到它的地方......
答案 1 :(得分:2)
如果您指定了正确的内容类型,请求该文件的应用程序/浏览器可以正确处理
例如,如果您正在下载pdf文件,浏览器知道如何处理内容类型“application / pdf”并将直接在浏览器中打开文件,如果它不知道类型,它将只是要求你下载文件
浏览器还允许您指定一个特定的程序,您可以从中打开特定类型的文件,例如,如果您下载了一个torrent文件,您可以告诉您的浏览器使用uTorrent打开它,并在下次使用torrent文件时下载它也将直接与uTorrent打开
在Node.js中,您可以获取执行以下操作的文件的内容类型:
type = require('mime').lookup(path);