如果我将我的照片命名为“test.jpg”或仅为观众“测试”,这是否重要?
<img src="test.jpg" />
<img src="test" />
两者都适用于我所知道的所有浏览器,但使用正确的文件扩展名是否有任何意义?
答案 0 :(得分:12)
不,重要的是Content-Type标头,它在HTTP响应中提供。
答案 1 :(得分:10)
这可能无关紧要(见其他答案)。
说完了,为什么不保留文件扩展名?它将使您的页面源更具可读性,并且您将很容易理解存储在服务器上的文件类型。
即使没有技术原因,将每个文件保留为有意义的扩展名也是一种非常好的做法。同样,我猜您可以保存.c
,.h.
和.py
个文件而不添加扩展名。他们会编译并运行,但这会让你的生活变得更加艰难。
答案 2 :(得分:6)
理论上,正如安东指出的那样,重要的是Content-Type标题。
但是,实际上,至少Internet Explorer会在某些情况下尝试“猜测”MIME类型,即使它是在Content-Type标头中指定的。然后文件名是考虑的事情之一。但是,这只适用于某些特殊情况。
见这里:http://msdn.microsoft.com/en-us/library/ms775147%28VS.85%29.aspx
答案 3 :(得分:1)
不。只有响应中的MIME类型很重要,有时甚至不重要。
答案 4 :(得分:1)
对于图像,因为它们使用mime类型并不重要。但你要问的事实意味着即使你认为它有点令人困惑。这也假设一些mod_rewrite foo或你正在通过你的框架加载图像,这将花费你一些性能。
答案 5 :(得分:1)
对于浏览器,不,MIME类型才是真正重要的。请参阅this list of MIME types。
对于用户来说,添加扩展程序可能有意义,但大多数图片网址对最终用户不可见,因此这不是一个重点。
对于服务器,扩展名绝对重要。大多数Web服务器使用文件扩展名作为确定如何处理传入请求的方法。 e.g:
如果您需要动态生成robots.txt文件,则可以将Web服务器设置为以与使用静态robots.txt时不同的方式处理传入的.txt请求。