CSS和JS有奇怪的散列文件名

时间:2013-07-25 20:50:17

标签: javascript css html5

我一直在研究其他网站的代码,我注意到有些网站使用了奇怪的css和js文件名。

示例:

www.website.com/js/s_bda6c508a1d8d5de14fb21f61da91512.js
www.website.com/css/6357525.css

有谁知道那种技术是什么?

3 个答案:

答案 0 :(得分:11)

这很可能是随机生成的哈希,用于破坏缓存。

基本上,它们可能会合并并缩小所有JS和CSS资源,因此每个资源都有一个主文件(由于较少的http请求,这大大减少了页面加载时间)。

任何时候他们运行编译这些文件的脚本,都会给出随机的乱码名称,以便下次用户访问该网站时,他们会使用旧的缓存版本下载更新的CSS和JS而不是他们的浏览器并可能导致页面显示不正确(例如,如果他们使用更常规的名称,如scripts.jsstyle.css)。

编辑:就像jesus.tesh在他的评论中指出的那样,另一种非常常见的缓存清除技术是在资源href的末尾添加一个随机且无意义的查询值,例如: style.css?22137310)。

答案 1 :(得分:2)

通常是因为框架的资产编译。

我使用Ruby on Rails和我的开发机器上我的css文件可能被命名为application.cssui.css或者其他什么,但是当rails部署它时,它会将所有这些文件编译成一个文件,其名称类似于:

 application-bec2abb573c652a8d453f24b457e389d.css

这只是我的服务器的一个标记,它告诉它编译资产的部署。

它还可以防止其他几个人提到的旧缓存。

答案 2 :(得分:0)

它只是随机文件名。

为什么呢? 这样做的答案非常简单。每当您的浏览器从域(js,css,图像等)请求内容时,它会将回复缓存在您的磁盘上,因此下次它要求它时它将不会再次下载(HTTP状态代码304),以便绕过缓存机制每当您访问该网站时,该网站都会生成不同的文件名,以强制浏览器每次下载该文件的新副本。