我一直在研究其他网站的代码,我注意到有些网站使用了奇怪的css和js文件名。
示例:
www.website.com/js/s_bda6c508a1d8d5de14fb21f61da91512.js
www.website.com/css/6357525.css
有谁知道那种技术是什么?
答案 0 :(得分:11)
这很可能是随机生成的哈希,用于破坏缓存。
基本上,它们可能会合并并缩小所有JS和CSS资源,因此每个资源都有一个主文件(由于较少的http请求,这大大减少了页面加载时间)。
任何时候他们运行编译这些文件的脚本,都会给出随机的乱码名称,以便下次用户访问该网站时,他们会使用旧的缓存版本下载更新的CSS和JS而不是他们的浏览器并可能导致页面显示不正确(例如,如果他们使用更常规的名称,如scripts.js
或style.css
)。
编辑:就像jesus.tesh在他的评论中指出的那样,另一种非常常见的缓存清除技术是在资源href的末尾添加一个随机且无意义的查询值,例如: style.css?22137310
)。
答案 1 :(得分:2)
通常是因为框架的资产编译。
我使用Ruby on Rails和我的开发机器上我的css文件可能被命名为application.css
和ui.css
或者其他什么,但是当rails部署它时,它会将所有这些文件编译成一个文件,其名称类似于:
application-bec2abb573c652a8d453f24b457e389d.css
这只是我的服务器的一个标记,它告诉它编译资产的部署。
它还可以防止其他几个人提到的旧缓存。
答案 2 :(得分:0)
它只是随机文件名。
为什么呢? 这样做的答案非常简单。每当您的浏览器从域(js,css,图像等)请求内容时,它会将回复缓存在您的磁盘上,因此下次它要求它时它将不会再次下载(HTTP状态代码304),以便绕过缓存机制每当您访问该网站时,该网站都会生成不同的文件名,以强制浏览器每次下载该文件的新副本。