Quá xấu bạn chưa trả lời nhận xét của tôi, vì vậy tôi đã quên câu hỏi của bạn và mất tiền thưởng. Tôi đoán câu trả lời của tôi thậm chí còn dễ sử dụng hơn cho bạn bởi vì bạn không cần phải nhấp vào bất kỳ menu ngữ cảnh nào để xem PNG trực tiếp trong trình duyệt:
Tiện ích mở rộng của Chrome Redirector có thể được định cấu hình để thay thế tiêu đề phản hồi HTTP. Tôi tạo ra một quy tắc thay thế header Content-Type cho bất kỳ URL kết thúc bằng ".png":
Dán mã JSON này vào một trình soạn thảo văn bản, save as png_rule.json và sau đó trong Redirector thiết lập đi Quy định quản lý, nhấp tập tin để mở im-/tùy chọn xuất khẩu và nhập khẩu các nguyên tắc phiên bản 1:
[{"name":"x-png -> png","match":{"str":"\\.png$","type":0,"modi":false},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]
Từ giờ trở đi tất cả các file PNG của bạn nên được tốt.
Cập nhật: thay thế đối sánh mẫu đơn giản bằng kết hợp regex chặt chẽ hơn theo đề xuất của tác giả hoặc Người quay số.
Cập nhật 2: Có hệ thống như Trac sản xuất URL cho file đính kèm PNG kết thúc bằng ".png", nhưng thực sự là các trang HTML mà chỉ nhúng PNG như là một phần của trang. Trong trường hợp này, chúng tôi cần danh sách đen các máy chủ lưu trữ vì nếu không, loại nội dung của trang HTML sẽ được đặt thành hình ảnh/png mặc dù nó vẫn giữ nguyên là văn bản/html. Do giới hạn của Redirector, các tiêu đề chỉ có thể được ghi đè cho các URL trùng khớp và thay thế một phần, ví dụ: chỉ png thay vì x-png, là không thể, chúng tôi cần sử dụng phương pháp khá xấu xí để loại trừ rõ ràng các máy chủ nhất định trong kết hợp regex. Ví dụ.
^https?://(?!([^/]+\.)?(?:trac\.edgewall\.org|freetz\.org)/).*\.png$
sẽ loại trừ URL có chứa một trong hai tên máy chủ trac.edgewall.org hoặc freetz.org. đầy đủ các JSON để được nhập khẩu vào Redirector là quy tắc phiên bản 2:
[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+\\.)?(?:trac\\.edgewall\\.org|freetz\\.org)/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]
Hai URL thử nghiệm thất bại (tức là hiển thị "hình ảnh" trống rỗng thay vì các trang HTML) với các phiên bản trước của sự cai trị mà không cần danh sách đen và hiện nay hoạt động với quy định mới bao gồm danh sách đen là:
Thật dễ dàng để thêm các URL khác nếu bạn biết một chút regex hoặc chỉ chơi xung quanh.
Nhân tiện: Đối với URL Trac, một giải pháp thay thế tốt sẽ là sử dụng phần chung "/ attachment/ticket /" cho danh sách đen. Bằng cách này, bạn có thể liệt kê tất cả các cài đặt Trac trên toàn thế giới thay vì danh sách máy chủ cố định. Vì vậy, đây là quy tắc phiên bản 3:
[{"name":"x-png -> png","match":{"str":"^https?://(?!([^/]+)?/attachment/ticket/).*\\.png$","type":0,"modi":true},"sub":{"str":"Content-Type","type":4,"modi":true,"modg":true},"repl":{"str":"image/png","decode":false},"enabled":1}]
Cập nhật 3: Redirector là không còn có sẵn trong cửa hàng Chrome, nhưng phiên bản lịch sử có thể được tải về từ cũ Redirector home page.
Tôi có ý tưởng nhưng cần dữ liệu thử nghiệm. Vui lòng thêm một số URL có tiêu đề phản hồi không có thật (hình ảnh/x-png) cho câu hỏi của bạn. – kriegaex
cuối cùng đã tìm thấy một số hình ảnh thử nghiệm https://bugs.adobe.com/jira/browse/SDK-32051 nhờ http://stackoverflow.com/q/9097781/962091 – zackdever
Đối với tôi những hình ảnh đó là hình ảnh bình thường/png, vì vậy Tôi đã thử nghiệm với máy chủ web cục bộ (được định cấu hình sai mục đích). – kriegaex