PNG 이미지에 대한 크롬의 MIME 유형 경고


115

방금 내 사이트를 크롬으로 실행했는데 놀랍게도 각 .png 이미지에 대해 다음 경고가 표시됩니다.

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

전에 본 사람 있나요?

문안 인사


이것은 나에게도 발생하지만 내 dev 컴퓨터에서만 발생합니다. 설명을 찾았습니까?
BrianFinkel

Cassini에서 MIME 유형을 변경하는 방법이 있습니까? web.config 섹션 의 <staticContent>설정 을 무시하는 것 같습니다 <system.webServer>.
트래비스

1
왜 같은 문제에 대해 78 개의 찬성표를 가진 사람이 될 수 없습니까? 항상 너무 늦었어요 ....
스콧 셀비

2
거의 2 년 반 늦게; o)
Muleskinner

컨트롤 키를 누른 상태에서 오류, 디버그 및 경고 만 선택할 수 있음을 방금 발견했습니다. 이렇게하면 디버깅하는 동안 로그가 MIME 유형 오류로 복잡해지지 않고 다른 모든 것을 볼 수 있습니다. 매우 편리합니다.
Devil 's Advocate

답변:


84

ASP.NET 개발 서버를 사용하여 ASP.NET WebForms 앱을 실행하는 동안이 문제가 발생했습니다.

IIS Express를 서버로 사용하는 경우에도 비슷한 일이 발생할 것이라고 생각합니다 (VS 2010 SP1).

프로젝트 설정 (웹 아래)을 편집하여 로컬에서 문제를 '해결'하고 로컬 컴퓨터의 ASP.NET 개발 서버에서 IIS로 변경했습니다. PNG가 이미 이미지 MIME 유형으로 올바르게 정의되었으며 실제로 로컬 IIS 서버에 도달했을 때 올바른 유형의 파일을 제공하고 있음을 알 수 있습니다.


11
IIS Express를 사용하면 PNG 이미지에 MIME 유형 경고가 없습니다. 기본적으로 더 이식 가능한 형식의 표준 IIS 7.5입니다 (표준 IIS는 PNG를 제공하는 데 문제가 없음). 방금 새 프로젝트를 시작하고 Cassini (개발 서버)에서 경고를 확인하고 IIS Express로 설정하고 경고가 사라 졌음을 확인했습니다.
patridge

내가 만난 이상한 점은 MVC ASP.NET 4 응용 프로그램을 만들었고 Cassini에서 png 파일을 제대로로드 할 수 있다는 것입니다. MVC ASP.NET 1 응용 프로그램을 최대 4 개로 업그레이드했는데 동일한 png 파일을 사용하는 Cassini에서이 문제가 발생합니다. 어떤 아이디어?
MattB

1
@MattB-새로운 MVC4 프로젝트와 업그레이드 된 프로젝트 간의 구성 파일 (csproj 및 web.config)을 텍스트 편집기에서 나란히 비교하는 것이 좋습니다. 내 첫 번째 추측은 자동으로 업그레이드되지 않은 어셈블리 참조 또는 유사 항목이 있다는 것입니다. 그보다 더 복잡한 경우 새 질문을 열고 더 자세한 정보를 포함 할 수 있습니다.
Stefan Mohr 2012 년

@StefanMohr 응답 해 주셔서 감사합니다. 늦게 돌아와서 죄송합니다. 나는 두 가지를 비교해 보았고 평범하지 않은 것을 발견하지 못했습니다. 새로 생성 된 ASP.Net MVC 4 프로젝트와 동일하게 만들기 위해 csproj와 web.configs 모두에 필요한 변경 작업을 수행했습니다. 결국 저는 방금 새 프로젝트를 만들고 모든 것을 새 프로젝트에 이식했습니다.
MattB

이 웹 사이트는 Azure에서 호스팅되며 콘솔을 포장하는이 성가신 오류가 발생합니다.
Shimmy Weitzhandler

4

이 경고는 웹 서버가 PNG 이미지에 대한 올바른 MIME 유형 메타 데이터를 보내도록 구성되지 않았 음을 나타냅니다. 웹 서버 관리자에게 문의하여 올바른 MIME 매핑을 설정하도록 요청해야합니다.


3
당신은 웹 서버의 관리자 인 경우, 당신은 아마에 답 찾을 것 @JimG 웹 마스터를위한 자매 사이트
로우 랜드 쇼

+1 가장 설명적이고 유용한 답변입니다. 왜 그렇게 많이 반대표를 받았는지 모르겠습니다.
Sir Crispalot 2013

@JimG. 관리자라면 어떤 웹 서버를 사용하고 있는지 말하거나 사이트에서 웹 마스터를
Rowland Shaw

동의합니다, 가장 유용한 답변입니다. @JimG를 이해하지 못했습니다. 반대표.
Anoyz 2013

4

.htaccess (AddType 이미지 / 유형 확장)에 이와 같은 유형을 추가했습니다.

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

2

물론 위의 솔루션은 완벽합니다. 경고를 피하고 깨끗한 콘솔을 위해 코드를 변경했습니다. (ASP.NET 개발 서버에만 해당) 이에 대한 추가 처리기를 작성했습니다.

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 구성 요소 > World Wide Web 서비스 > 일반 HTTP 기능 에서 정적 콘텐츠 를 활성화하여이 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.