19

我有一台带有 nginx 的服务器。而且我有很多图像 - pngs 和 jpgs 保存为没有扩展名的文件(如“123123123_321312”)。

当我在 html 页面中使用标签“img”时,我会在控制台中收到这些消息:

资源解释为图像,但使用 MIME 类型应用程序/八位字节流传输:“http://xxxx/images/1350808948_997628”。jquery.js:2
资源解释为图像,但使用 MIME 类型 application/octet-stream: "http://xxxx/images/1343808569_937350" 传输。

有没有办法让 nginx 添加具有请求文件的正确 mimetype 的标头?

4

2 回答 2

20

你应该使用default_type指令:

server {
   ...
   default_type text/html;

   location /images/png {
      default_type image/png;
   }

   location /images/jpg {
      default_type image/jpeg;
   }
}
于 2012-11-22T10:19:10.913 回答
0

我也必须补充。

如果您的网页被下载而不是执行,Mickaël Le Baillif 解决方案也可以工作。因为 nginx 认为它应该是default_type application/octet-stream;即使官方文档说:

要使特定位置为所有请求发出“application/octet-stream”MIME 类型,可以使用以下配置

并指出location /download/ 这也给出了:

Resource interpreted as Image but transferred with MIME type application/octet-stream: "http://xxxxx.com/"

Nginx 版本:1.6.2

于 2017-01-04T18:01:20.783 回答