CSS文件名大小写敏感性和CSS文件缓存

8
我们正在重写一些网站,并尝试为用户充分利用浏览器缓存。我们创建了一组共享的CSS文件,计划在我们创建的多个站点上使用作为“企业品牌”。
原因是,我们知道浏览器会将CSS文件缓存一段时间。如果我在不同的站点中指定相同的文件名但大小写不同,它是否会缓存两个版本的文件(即使它们内容相同),还是会认识到它是相同的文件,从而忽略文件名的大小写?

<link href="http://branding.corporateentity.com/style/screen.css" type="text/css" />
<link href="http://branding.corporateentity.com/style/print.css" type="text/css" />

vs:


<link href="http://branding.corporateentity.com/Style/Screen.css" type="text/css" />
<link href="http://branding.corporateentity.com/Style/Print.css" type="text/css" />

1
一般来说,我避免使用大小写来区分名称相似的事物,因为某些系统可能会出现错误。最好为所有命名坚持一组大小写规则。你可以编写一个脚本来查找代码中的大小写问题,这比检查可能消耗它的每个可能的网络环境要容易得多。 - Michael Dillon
3个回答

4

URL是区分大小写的,因此最好总是使用特定的大小写。我建议为了简单起见,将所有内容都转换为小写字母(并用破折号分隔单词)。这也适用于您的页面名称和图像,以便于SEO。

浏览器会将不同的大小写视为不同的文件,因为它们不知道服务器是否相同。因此,如果浏览器看到指向Style/Screen.css的链接,它将不会使用其style/screen.css缓存。


1

URL是区分大小写的,浏览器遵循这个标准——不同的大小写意味着不同的文件。然而,我会犹豫使用上面的示例,因为有些浏览器可能不遵循标准协议(例如,我认为Windows不区分大小写,并且想知道一些老旧的浏览器是否无法区分'file'和'File'之间的区别)。


1

浏览器在URL中始终区分大小写,因为一些Web服务器对不同大小写返回不同的结果。

Windows Web服务器不关心大小写,但Linux服务器会。如果文件在Linux服务器上,使用错误的大小写会导致HTTP 404错误。


我的桌面电脑是Windows,但我的服务器是Linux。有时候,当一个图形程序写一个扩展名为“.JPG”的文件,而我的链接却写成“.jpg”时,我会遇到问题。在Windows上测试时一切正常,但上传到Linux后会出现404错误。故意搞混大小写只会给自己惹麻烦。 - Jay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接