Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image chrome中png图像的MIME类型警告_Image_Png_Google Chrome_Mime_Warnings - Fatal编程技术网

Image chrome中png图像的MIME类型警告

Image chrome中png图像的MIME类型警告,image,png,google-chrome,mime,warnings,Image,Png,Google Chrome,Mime,Warnings,刚刚在chrome中运行了我的网站,令人惊讶的是,它为我的每个.png图像都给出了以下警告: Resource interpreted as image but transferred with MIME type application/octet-stream. 有人见过这个吗 关于此警告告诉您,您的web服务器未配置为发送PNG图像的正确MIME类型元数据。您可能应该咨询web服务器的管理员,让他们设置正确的MIME映射我在使用ASP.NET开发服务器运行ASP.NET WebForms

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

Resource interpreted as image but transferred with MIME type application/octet-stream.
有人见过这个吗


关于

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

我在使用ASP.NET开发服务器运行ASP.NET WebForms应用程序时遇到了这种情况

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


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

我在.htaccess(AddType image/type extension)中添加了类似的类型 i、 e


当然,上述解决方案是完美的。为了避免出现警告,为了一个干净的控制台,我在代码中做了如下更改。(这也仅适用于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处理程序

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

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

全部:

错误、警告和调试:

我通过在控制面板中启用静态内容程序和功能打开或关闭Windows功能IIS组件万维网服务常见HTTP功能解决了这个问题,我也遇到了这种情况,但只在我的开发机器上。你找到解释了吗?有没有办法改变卡西尼号的MIME类型?它似乎忽略了web.config中
部分中的
设置。为什么我不能成为对同一问题投78票的人?总是太晚了……几乎晚了2年半;o) 我刚刚发现,您可以按住control键,选择Error、Debug和Warning only。这样,在调试时,您的日志不会被mime类型的错误弄得乱七八糟,但您可以看到其他所有内容。非常方便。使用IIS Express,PNG图像上没有MIME类型警告。它基本上是标准的IIS7.5,具有更高的可移植性(并且标准IIS在提供PNG方面没有问题)。我刚刚启动了一个新项目,确认Cassini(开发服务器)中的警告,将其设置为IIS Express并确认警告消失。我遇到的奇怪的事情是,我创建了一个MVC ASP.NET 4应用程序,它在Cassini中加载png文件时运行良好。我将一个MVC ASP.NET 1应用程序升级到了4个,在Cassini中使用相同的png文件时遇到了这个问题。有什么想法吗?@MattB-我建议在文本编辑器中将新的MVC4项目和升级的项目之间的配置文件(csproj和web.config)进行比较。我的第一个猜测是,有一个程序集引用或类似的引用没有自动升级。如果问题比这更复杂,您可能需要提出一个新问题,并提供更多详细信息。@StefanMohr感谢您的回答,很抱歉延迟返回。我对两者进行了比较,没有发现任何看起来不寻常的东西。我甚至对csproj和web.configs进行了必要的更改,使它们与新创建的ASP.NETMVC4项目完全相同,但没有这样的运气。最终,我创建了一个新项目,并将所有内容移植到新项目中。该网站位于Azure上,我在打包控制台时遇到了一个恼人的错误。@JimG如果你是web服务器的管理员,你可能会在+1上找到答案。这是最具描述性和最有用的答案。不知道为什么它被否决了这么多。@JimG。如果你是管理员,你会说你使用的是什么Web服务器,或者在网站上询问最有用的答案。我不明白@JimG。否决票。
<system.web>
 <httpHandlers>
 <add path="*.png" verb="*" type="PNGHandler" />
 </httpHandlers>
</system.web>