为什么这些文件有文件名的随机字符串?

时间:2012-11-29 00:12:57

标签: javascript css filenames

我遇到过像这样的CSS和JS文件名的网站:

css_pbm0lsQQJ7A7WCCIMgxLho6mI_kBNgznNUWmTWcnfoE.css

造成这种情况的原因是什么?为什么会这样做?

编辑:下面的每个答案中的一些可能适用于这种情况,但鉴于我发现的网站,服务/缓存方法似乎是最准确的。

4 个答案:

答案 0 :(得分:6)

版本控制并确保提供正确版本的静态资源。 如果你有一个高流量的网站,并且你为很多用户提供服务,你将有几层缓存:CDN,文件缓存标题等。

有时,使用相同的文件名使高速缓存无效是很困难的。服务器可能会传递正确的标头,但客户端可能会忽略它们并仍然加载缓存版本。提供不同的文件名可以防止这种情况,并确保您拥有正确版本的css / js和其他静态资源。

答案 1 :(得分:2)

你可能会说,没有人想出那个名字。

通常是 将多个CSS文件合并到一个文件中的结果。这是 出于性能原因而完成(请求一个文件比请求两个文件更快。)

该名称可能是确定性算法的结果 输入(即a hash),这样如果再次执行组合但没有更改CSS,输出将被赋予相同的名称。

当内容(CSS)更改时,输出文件的名称将更改。 这很有用,因为它使浏览器无法缓存 旧版本。

答案 2 :(得分:1)

看起来该文件是在服务器端生成的,用于缩小。

您正在访问的网站可能有多个CSS文件(可能与@import语句结合)和JS文件(jQuery,jQuery UI,jQuery插件,一些自定义代码等) - 而不是让开发人员手动缩小并组合服务器可能为它们执行的文件(例如,ASP.NET 4.5执行此操作)。在这种情况下,它使用任意(随机的基于GUID的?)文件名来确保它不与任何东西冲突。

答案 3 :(得分:0)

这可能是网站使用的技术。

即。如果你使用gwt(它是在javscript中编译的一些java)或其他预处理某些代码并输出javascript的东西,你可能会得到奇怪的文件名。