<img/> src中的文件扩展名与实际格式不同时的含义

时间:2013-09-05 22:24:45

标签: javascript html asp.net html5

我想知道如果src标签的<img>属性中指定的文件名与实际图片格式不同,是否有任何影响

例如,我可以拥有一个像

这样的扩展名的图片
  <img src="avatar.pdf" alt="" />

  <img src="avatar.html" alt="" />

它仍然有效。

响应标头中的

Content-Type在每种情况下都明显不同,但我猜网络浏览器会忽略它。

鉴于有这么多平台和网络浏览器版本,有什么影响吗?

背景:

我问这个的原因是因为我正在开发一个Web应用程序,您可以在其中使用图像创建HTML内容。可以在不同位置引用相同的图像(用户可以从存储库中选择图像)。我需要让用户替换图像,但不需要系统重新保存使用该图像的所有HTML页面。图像路径必须基于在数据库中跟踪的id。但问题是更换图像时文件扩展名。我的想法是保留没有任何扩展名的图像文件,即:

  <img src="/Content/Images/1289371" alt="" />

2 个答案:

答案 0 :(得分:0)

可能重复:Can I use images without extension in <img>?

简短回答:

  

响应标题中的Content-Type在每种情况下都明显不同,但我猜网页浏览器会忽略它。

=&GT;不,它没有。

  

浏览器最初不查看文件名,它们会查看HTTP服务器响应中Content-type标头中列出的MIME类型。如果内容类型是image / jpeg,或png或gif或其他什么东西,那么事情就会很好,它会很乐意渲染图像。

     

如果没有有效的MIME类型,某些浏览器会尝试猜测类型是什么。他们将查看请求对象的扩展,或者他们将查看前几个字节。如果失败了,那么你会得到一个重新索引。

归功于 whatsisname

答案 1 :(得分:0)

我认为webbrowser将检查这些文件的二进制内容并忽略扩展等。

只需检查浏览器的第一个字节就可以查找标题。