【问题标题】:Are file extensions needed in <img> tags?<img> 标签中是否需要文件扩展名?
【发布时间】:2010-06-28 18:24:49
【问题描述】:

我有一个可以显示徽标的 Web 应用程序。一些徽标将采用 GIF 格式。有些会是 JPEG 格式。

我想标准化文件命名约定,以便在给定公司主键的情况下找到徽标文件。例如“British Petroleum”的 PK 为 1459,他们的 logo 存储在 /Images/Logos/C1459

所以我的问题是这样的:

文件扩展名重要吗?我可以只保存文件,去掉 .JPG 或 .GIF 并期望所有浏览器都能够识别和呈现文件吗?还是有些浏览器依赖文件扩展名来识别?

我已经在装有 IE7 的测试机器上进行了尝试,它运行良好,但我不想假设所有其他浏览器都运行相同。

编辑: 一个跟进问题。 IIS 如何确定无扩展名文件的 MIME 类型?

【问题讨论】:

    标签: html iis


    【解决方案1】:

    对浏览器来说更重要的是在下载过程中与文件一起传输的 MIME 类型 - 从历史上看,有些确实会退回到启发式方法,例如文件扩展名或尝试根据传输的字节数进行计算,但如果 MIME 类型正确,没有必要。

    【讨论】:

    • 请点赞,不要匿名,甚至可以解释原因:简洁、正确,并教会了我一些有趣的额外信息。
    • 确实,MIME 类型是唯一需要担心的事情。过去,浏览器试图根据扩展名选择文件类型,但我认为今天不会有很多这样做的。顺便说一句,我曾经在论坛上发布了一张 JPEG 图片,然后得出结论认为它不是最合适的文件类型。我将图像更改为 PNG8,但使用完全相同的文件名保存它,因此扩展名为 .jpg。该文件以正确的 MIME 类型提供(并且 IIRC 它托管在 IIS 服务器上)。
    【解决方案2】:

    您肯定希望在尽可能多的浏览器中对其进行测试,但 应该 没问题。只要文件格式正确并且正确传达了 MIME 类型,浏览器应该可以很好地显示图像。 (很多网站都会有“图片”,其 URL 如下:/images/dbimage.aspx?id=123)

    编辑:实际上,对于测试而言,比不同的浏览器更重要的是不同的图像类型。如果有任何图像类型未使用正确的 MIME 类型发送,您需要识别它们并解决它们或禁止它们。

    【讨论】:

      【解决方案3】:

      这对我来说似乎有点前后矛盾。为什么不:

      1) 首次存储时将所有图像转换为相同类型?

      2) 使用通配符搜索(即匹配/Images/Logos/C1459.*)搜索公司的图像并加载返回肯定匹配的文件。当您使用主键时,您可以确信您应该只为每个公司找到一个匹配项。

      【讨论】:

      • 1) 因为 gif 和 jpeg 之间的转换会丢失信息(jpeg 是有损的,而 gif 支持的颜色较少)。 2)因为它更复杂。
      • ...并且图像使用次优文件类型保存(例如:使用 JPEG 存储线条图通常是一个坏主意,尤其是使用公司徽标时,我见过很多丑陋的图像由于使用了错误的图像格式,可能是因为我有时会听到“JPEG 总是生成最小的文件”的误解)。
      • 因为这是一个最终用户驱动的过程,我无法控制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多