chrome中的MIME类型警告,用于png图像


115

刚刚在chrome中运行了我的网站,令人惊讶的是,它对我的​​每个.png图片都提出了以下警告:

Resource interpreted as image but transferred with MIME type application/octet-stream.

有人看过吗?

问候


我也有这种情况,但仅限于我的开发机器上。您找到解释了吗?
BrianFinkel

有什么办法可以在Cassini中更改MIME类型吗?似乎忽略了web.config部分中的<staticContent>设置<system.webServer>
travis

1
为什么我不能为同一问题获得78票赞成?总是太晚了....
斯科特·塞尔比

2
晚近2½年; o)
Muleskinner 2012年

我刚刚发现您可以按住Control键,然后仅选择Error,Debug和Warning。这样,调试时日志就不会杂乱无章的mime类型错误,但您会看到其他所有内容。非常便利。
魔鬼的拥护者

Answers:


84

我在使用ASP.NET开发服务器运行ASP.NET WebForms应用程序时遇到了此问题。

我怀疑如果将IIS Express也用作服务器(VS 2010 SP1),也会发生类似的情况。

我通过编辑项目设置(在Web下)在本地“解决”了我的问题,并将其从ASP.NET开发服务器更改为本地计算机上的IIS。我可以看到PNG已经正确定义为图像MIME类型,并且确实,当我命中本地IIS服务器时,它正在以正确的类型提供文件。


11
使用IIS Express,PNG图像上没有MIME类型警告。基本上,它是标准IIS 7.5,具有更易移植的形式(标准IIS服务PNG毫无问题)。我刚刚启动了一个新项目,在Cassini(开发服务器)中确认了警告,将其设置为IIS Express,并确认了警告已消失。
2011年

我遇到的奇怪的事情是我创建了一个MVC ASP.NET 4应用程序,并且可以在Cassini中加载png文件时正常工作。我将MVC ASP.NET 1应用程序升级到了4,而在Cassini中使用相同的png文件遇到此问题。有任何想法吗?
MattB 2012年

1
@MattB-我建议在文本编辑器中比较新MVC4项目和升级后的MVC4项目之间的配置文件(csproj和web.config)。我的第一个猜测是有一个装配参考或类似参考没有自动升级。如果比这更复杂,您可能要打开一个新问题并提供更多详细信息。
Stefan Mohr

@StefanMohr谢谢您的答复,对不起,您的回复很晚。我做了两者的比较,没有发现任何与众不同的地方。我什至甚至对csproj和web.configs都进行了必要的更改,以使其与新创建的ASP.Net MVC 4项目完全相同,但运气并不好。最终,我刚刚创建了一个新项目,并将所有内容移植到了新项目中。
MattB 2012年

该网站托管在Azure上,并且在打包控制台时出现此烦人的错误。
Shimmy Weitzhandler

4

此警告告诉您您的Web服务器未配置为发送PNG图像的正确MIME类型元数据。您可能应该咨询Web服务器的管理员,并要求他们设置正确的MIME映射


3
@JimG如果您是Web服务器的管理员,则可能会在姐妹网站
Rowland Shaw

+1这是最具描述性和有用的答案。不知道为什么它被否决了这么多。
Crispalot爵士,13年

@吉姆 如果您是管理员,则需要说出正在使用的Web服务器,或者在网站上询问网站管理员
Rowland Shaw

同意,最有用的答案。不懂@JimG。下注。
2013年

4

我在.htaccess(AddType图片/类型扩展)中添加了这样的类型,即

AddType image/png cur
AddType image/svg+xml svg svgz

2

当然上述解决方案是完美的。只是为了避免警告和为了获得一个干净的控制台,我在更改代码后进行了更改。(这也仅适用于ASP.NET Development Server)我为此编写了一个额外的处理程序:

PNGHandler.cs

class PNGHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    { 
       if(context.Request.HttpMethod == "GET") 
       {
             string requestedFile = context.Server.MapPath(context.Request.FilePath);
             FileInfo fileinfo = new FileInfo(requestedFile);
             string contentType = "";
             if (fileinfo.Exists && fileinfo.Extension.Remove(0, 1).ToUpper() == "PNG")
             {
                   contentType = "image/png";
                   context.Response.ContentType = contentType;
                   context.Response.TransmitFile(requestedFile);
                   context.Response.End();
              }
         }
    }
}

并在system.web下的web.config中添加了Http Handler

<system.web>
 <httpHandlers>
 <add path="*.png" verb="*" type="PNGHandler" />
 </httpHandlers>
</system.web>

0

解决垃圾邮件最快的方法是使用CTRL键选择“错误”,“警告”和“调试”,而不是全部。

所有: 在此处输入图片说明

错误,警告和调试: 在此处输入图片说明


0

我已通过在控制面板 > 程序和功能 > 启用或禁用Windows功能 > IIS组件 > 万维网服务 > 通用HTTP功能中启用静态内容来解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.