【问题标题】:Does file extensions matter for browsers?文件扩展名对浏览器重要吗?
【发布时间】:2011-01-10 01:04:27
【问题描述】:

我是否将我的图片命名为“test.jpg”或只是为观众“测试”?

<img src="test.jpg" />
<img src="test" />

两者都适用于我知道的所有浏览器,但使用正确的文件扩展名有什么意义吗?

【问题讨论】:

    标签: html browser image


    【解决方案1】:

    对于浏览器,不,MIME 类型才是真正重要的。见this list of MIME types

    对于用户而言,添加扩展程序可能很有意义,但大多数图像 URL 对最终用户不可见,因此这不是一个大问题。

    对于服务器来说,扩展肯定很重要。大多数 Web 服务器使用文件的扩展名作为它们确定如何处理传入请求的方法。例如:

    如果您需要动态生成 robots.txt 文件,您可以设置您的网络服务器以与使用静态 robots.txt 不同的方式处理传入的 .txt 请求。

    【讨论】:

    • 在这种情况下,我使用 Amazon S3 来存储文件,他们根本不关心扩展名,所以这不是问题。但在一般情况下很高兴知道:)
    【解决方案2】:

    正如 Anton 所指出的,理论上,重要的是 Content-Type 标头。

    然而,实际上,至少 Internet Explorer 在某些情况下会尝试“猜测” MIME 类型,即使它是在 Content-Type 标头中指定的。然后文件名是考虑的事情之一。但是,这应该只适用于某些特殊情况。

    请看这里:http://msdn.microsoft.com/en-us/library/ms775147%28VS.85%29.aspx

    【讨论】:

      【解决方案3】:

      对于图像,这并不重要,因为它们使用 mime 类型。但你问的事实意味着即使你也认为它有点令人困惑。这也假设一些 mod_rewrite foo 或者您正在通过您的框架加载图像,这将花费您一些性能。

      【讨论】:

        【解决方案4】:

        这可能无关紧要(请参阅其他答案)。

        话虽如此,为什么不保留文件扩展名?它将使您的页面源代码更具可读性,并且您将轻松理解存储在服务器上的文件类型。

        即使没有技术原因,为每个文件保留一个有意义的扩展名也是一种很好的做法。同样,我想您可以保存您的 .c.h..py 文件而不使用扩展名。它们会编译并运行,但这只会让你的生活变得更加艰难。

        【讨论】:

        • 我同意,但现在我有一种情况,当我存储图像时我会知道格式,但当我想显示它时却不知道。当然,我可以将格式存储在数据库中,但如果这样做没有意义,我会节省一些时间。
        • 它是否让人们(稍微)更难Save As...
        • 您可以为此编写一个小脚本,无需使用数据库表。顺便说一句,这种情况是怎么发生的?
        • @martin:如果您在存储时知道格式,那么您确实应该保存该信息。我看不出不存储会节省多少时间。
        • 如果您在投放时不知道格式,则从动态网址投放,如下所示:
        【解决方案5】:

        不,重要的是 Content-Type 标头,它在 HTTP 响应中提供。

        【讨论】:

        • +1: 但扩展有时用于“猜测” HTTP 响应中不存在的内容类型。
        【解决方案6】:

        不。只有响应中的 MIME 类型很重要,有时甚至不重要。

        【讨论】:

          猜你喜欢
          • 2019-07-22
          • 2016-07-31
          • 2011-02-09
          • 2015-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-27
          相关资源
          最近更新 更多