Cảnh báo loại MIME trong chrome cho hình ảnh png


115

Vừa chạy trang web của tôi trong chrome và thật ngạc nhiên khi nó xuất hiện cảnh báo này cho mỗi hình ảnh .png của tôi:

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

Có ai thấy điều này trước đây không?

Trân trọng


Điều này cũng xảy ra với tôi, nhưng chỉ trên máy phát triển của tôi. Bạn đã bao giờ tìm thấy một lời giải thích?
BrianFinkel

Có cách nào để thay đổi kiểu MIME trong Cassini không? Dường như bỏ qua các <staticContent>cài đặt trong <system.webServer>phần trong web.config.
travis

1
tại sao tôi không thể là người có 78 phiếu ủng hộ cho cùng một vấn đề? luôn luôn quá muộn ....
Scott Selby

2
trễ gần 2 năm rưỡi; o)
Muleskinner

Tôi vừa phát hiện ra rằng bạn có thể giữ phím điều khiển và chỉ chọn Lỗi, Gỡ lỗi và Cảnh báo. Bằng cách này, nhật ký của bạn không bị lộn xộn với lỗi loại kịch câm khi bạn đang gỡ lỗi nhưng bạn thấy mọi thứ khác. Rất tiện dụng.
Devil's Advocate,

Câu trả lời:


84

Tôi gặp sự cố này khi chạy ứng dụng ASP.NET WebForms bằng Máy chủ phát triển ASP.NET.

Tôi nghi ngờ điều gì đó tương tự sẽ xảy ra nếu bạn cũng sử dụng IIS Express làm máy chủ của mình (VS 2010 SP1).

Tôi đã 'giải quyết' cục bộ sự cố của mình bằng cách chỉnh sửa cài đặt dự án (trong Web) và thay đổi từ Máy chủ phát triển ASP.NET thành IIS trên máy cục bộ của mình. Tôi có thể thấy rằng PNG đã được định nghĩa chính xác là kiểu MIME hình ảnh và thực sự khi tôi truy cập vào máy chủ IIS cục bộ của mình, nó đang phân phát tệp với đúng loại.


11
Sử dụng IIS Express, không có cảnh báo kiểu MIME trên ảnh PNG. Về cơ bản, nó là tiêu chuẩn IIS 7.5 ở dạng di động hơn (và IIS tiêu chuẩn không gặp khó khăn gì khi cung cấp các tệp PNG). Tôi vừa tạo một dự án mới, xác nhận cảnh báo trong Cassini (máy chủ nhà phát triển), đặt nó thành IIS Express và xác nhận cảnh báo đã biến mất.
patridge

Điều kỳ lạ mà tôi gặp phải là tôi đã tạo một ứng dụng MVC ASP.NET 4 và nó hoạt động tốt khi tải các tệp png trong Cassini. Tôi đã nâng cấp ứng dụng MVC ASP.NET 1 lên 4 ứng dụng và tôi gặp phải sự cố này trong Cassini với các tệp png giống nhau. Có ý kiến ​​gì không?
MattB

1
@MattB - Tôi khuyên bạn nên so sánh các tệp cấu hình (csproj và web.config) giữa dự án MVC4 mới của bạn và dự án được nâng cấp song song trong trình soạn thảo văn bản. Dự đoán đầu tiên của tôi là có một tham chiếu lắp ráp hoặc tương tự không được tự động nâng cấp. Nếu nó phức tạp hơn bạn có thể muốn mở một câu hỏi mới và bao gồm nhiều chi tiết hơn.
Stefan Mohr

@StefanMohr Cảm ơn bạn đã phản hồi, Xin lỗi vì đã về muộn. Tôi đã so sánh cả hai và không gặp phải bất cứ điều gì có vẻ khác thường. Tôi thậm chí đã đi xa đến mức thực hiện các thay đổi cần thiết cho cả csproj và web.configs để làm cho chúng giống hệt với dự án ASP.Net MVC 4 mới được tạo, không may mắn như vậy. Cuối cùng, tôi vừa tạo một dự án mới và chuyển mọi thứ sang dự án mới.
MattB

Trang web được lưu trữ trên Azure và tôi gặp lỗi khó chịu này khi đóng gói bảng điều khiển của mình.
Shimmy Weitzhandler

4

Cảnh báo này cho bạn biết rằng máy chủ web của bạn không được định cấu hình để gửi dữ liệu meta loại MIME chính xác cho hình ảnh PNG. Bạn có thể nên tham khảo ý kiến ​​của quản trị viên cho máy chủ web của mình và yêu cầu họ thiết lập ánh xạ MIME chính xác


3
@JimG Nếu bạn là quản trị viên của một máy chủ web, có thể bạn muốn tìm câu trả lời trên các trang web chị em cho các webmaster
Rowland Shaw

+1 Đây là câu trả lời mô tả và hữu ích nhất. Không hiểu tại sao nó lại bị phản đối nhiều như vậy.
Sir Crispalot

@JimG. Nếu bạn là quản trị viên, bạn sẽ cho biết bạn đang sử dụng máy chủ web nào hoặc hỏi quản trị viên
Rowland Shaw

Đồng ý, câu trả lời hữu ích nhất. Không hiểu @JimG. tán thành.
Anoyz

4

Tôi đã thêm các kiểu như thế này trong .htaccess (AddType image / type extention) tức là

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

2

Tất nhiên các giải pháp trên là hoàn hảo. Chỉ để tránh cảnh báo và để có một bảng điều khiển sạch, tôi đã thực hiện sau khi thay đổi mã của mình. (điều đó cũng chỉ dành cho Máy chủ phát triển ASP.NET) Tôi đã viết một trình xử lý bổ sung cho điều này:

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();
              }
         }
    }
}

Và đã thêm Http Handler trong web.config dưới system.web

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

0

Cách nhanh nhất để xử lý thư rác mà tôi đã tìm thấy là sử dụng phím CTRL để chọn Lỗi, Cảnh báo và Gỡ lỗi thay vì tất cả.

Tất cả: nhập mô tả hình ảnh ở đây

Lỗi, Cảnh báo và Gỡ lỗi: nhập mô tả hình ảnh ở đây


0

Tôi đã giải quyết vấn đề này bằng cách bật Nội dung tĩnh trong Bảng điều khiển > Chương trình và Tính năng > Bật hoặc tắt các tính năng của Windows > Thành phần IIS > Dịch vụ Web Toàn cầu > Tính năng HTTP phổ biến

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.