【问题标题】:How to make Internet Explorer display .PNG image if its URL is specified without .PNG extension?如果指定的 URL 没有 .PNG 扩展名,如何使 Internet Explorer 显示 .PNG 图像?
【发布时间】:2016-01-04 11:09:23
【问题描述】:

比如我希望IE可以显示png图片,用URL表示 "http://update1.osmp.ru/logos/7642909813539583507":

<html>
    <head>
        <title>Failed to display png image that comes without .png extension in URL</title>
    </head>
    <body>
        <img src="http://update1.osmp.ru/logos/7642909813539583507">
    </body>
</html>

它不起作用,因为http://update1.osmp.ru/logos/7642909813539583507 没有被IE 解析为PNG 文件。是否有任何解决方法,插件,使用img标签在IE中显示这样的url资源?

【问题讨论】:

  • 我的 chrome 也无法识别
  • 我没有注意到 chrome 和 firefox 的任何问题。两种浏览器都在渲染 html 页面以及成功加载的 png 图像。
  • 但是如果你在 Chrome 中加载第二个链接 update1.osmp.ru/logos/7642909813539583507 它只会呈现文本
  • 是的,你是对的。但我确实关心在 html 中使用带有 img 标签的链接,而不是在浏览器中打开裸链接。尝试使用 Chrome 和 IE 打开我发布的 html。你会感觉到不同。
  • 我会尝试,但没有小提琴......无论如何你已经有两个答案,你应该选择任何一个作为正确的答案

标签: html image internet-explorer


【解决方案1】:

问题在于您的回复的 Content-Type 标头。是text/plain,但必须是image/png

Content-type 由返回图像的服务器设置。你应该看看你的服务器配置。

【讨论】:

  • 非常感谢。最大的问题是我无法控制服务器。我只是一个客户。
  • 您找到解决方案了吗@DmitryShebeko?我的 Windows 应用程序抛出“DOM7009:无法解码 URL 错误”时遇到了类似的问题。谢谢
【解决方案2】:

在 URL 中没有文件扩展名之类的东西。只是看起来像文件扩展名的东西,并且可能碰巧映射到文件系统上的文件。

内容类型决定了如何处理 HTTP 资源,如果您检查那个...

[ david ][ david@raston ] %  lynx -dump -head "http://update1.osmp.ru/logos/7642909813539583507"
HTTP/1.1 200 OK
Date: Wed, 07 Oct 2015 09:24:16 GMT
Content-Type: text/plain

...您会看到服务器声称它是纯文本文件而不是 PNG 图像 (image/png)。

您需要修复服务器,以便它发送正确的内容类型。

您如何执行此操作取决于服务器和您用于生成图像的任何服务器端软件。

例如,如果您提供一个没有文件扩展名的静态文件(服务器通常使用文件系统上的文件扩展名来确定静态文件的内容类型)并且您使用的是 Apache HTTPD,那么你可以使用the ForceType directive

例如在您的服务器配置中:

<Location /logos/>
    ForceType image/png
</Location>

【讨论】:

  • 非常感谢。最大的问题是我无法控制服务器。我只是一个客户。
猜你喜欢
  • 2015-05-19
  • 2012-03-07
  • 2021-04-13
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2017-10-28
  • 2011-06-14
相关资源
最近更新 更多