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

Javascript 带有奇怪散列文件名的CSS和JS,javascript,css,html,Javascript,Css,Html,我一直在研究其他一些网站的代码,我注意到一些网站使用奇怪的css和js文件名 例如: www.website.com/js/s_bda6c508a1d8d5de14fb21f61da91512.js www.website.com/css/6357525.css 有人知道这是哪种技术吗?这很可能是一种随机生成的哈希,用于破坏缓存 基本上,他们可能会合并并缩小所有JS和CSS资源,因此每个资源都有一个主文件(由于http请求较少,这大大减少了页面加载时间) 任何时候,当他们运行编译这些文件的脚本

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

例如:

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

有人知道这是哪种技术吗?

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

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

任何时候,当他们运行编译这些文件的脚本时,都会给他们这样的随机乱码名称,以便下次用户访问该站点时,他们将下载更新的CSS和JS,而不是使用旧的缓存版本下载浏览器,并可能导致页面显示不正确(比如他们使用了更为传统的名称,如
scripts.js
style.css


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

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

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

任何时候,当他们运行编译这些文件的脚本时,都会给他们这样的随机乱码名称,以便下次用户访问该站点时,他们将下载更新的CSS和JS,而不是使用旧的缓存版本下载浏览器,并可能导致页面显示不正确(比如他们使用了更为传统的名称,如
scripts.js
style.css


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

通常是因为框架编译了资产

我使用Ruby on Rails,在我的开发机器上,我的css文件可能命名为
application.css
ui.css
或其他任何名称,但当Rails部署时,它会将所有这些文件编译成一个名为:

 application-bec2abb573c652a8d453f24b457e389d.css
这只是我的服务器的一个标记,告诉它编译资产的目的是什么部署


正如其他几个人提到的那样,它还可以防止旧缓存。

通常是因为框架编译了资产

我使用Ruby on Rails,在我的开发机器上,我的css文件可能命名为
application.css
ui.css
或其他任何名称,但当Rails部署时,它会将所有这些文件编译成一个名为:

 application-bec2abb573c652a8d453f24b457e389d.css
这只是我的服务器的一个标记,告诉它编译资产的目的是什么部署


它还可以防止一些人提到的旧缓存。

它只是随机文件名

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

它只是随机文件名

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

每次都是这样吗?或者当你刷新页面并再次查看源代码时,数字是否会改变?这是一个用于缓存破坏的哈希。该网站可能使用了某种组合器/小型化器,link@SLaks说,该名称是用于缓存破坏的哈希。另一种技术包括向文件路径添加查询值。每次都是这样吗?或者当你刷新页面并再次查看源代码时,数字是否会改变?这是一个用于缓存破坏的哈希。该网站可能使用了某种组合器/小型化器,link@SLaks说,该名称是用于缓存破坏的哈希。另一种技术包括向文件路径添加查询值。+1表示关于查询值的注释,这使得这个答案最有价值,也是非常准确的答案。在配置错误的web服务器上测试您自己的文件时,或者通过过度缓存的ISP访问文件时,随机查询字符串也是命中率和破坏缓存的标准做法。+1表示有关查询值的注释,这使得此答案最有价值,也是非常准确的答案。在配置错误的web服务器上测试自己的文件或通过过度缓存的ISP访问文件时,随机查询字符串也是命中率和破坏缓存的标准做法。