缓存js和css文件


caching js and css files

我注意到许多网站的jscss文件都附有一个GET参数。因此,文件变成类似于:path/to/my.css?v=49path/to/my.js?v=1.4

我做了一些研究,我知道它用于文件缓存,所以浏览器不会每次请求都再次下载文件。我试着了解它到底是如何工作的,但老实说,我不知道。

我看到一些帖子说,你告诉浏览器每隔几分钟下载一次新文件,但我认为这可能有点棘手,因为如果我推动一个重大更改(甚至是一个关键的错误修复),用户试图访问网站,但他的浏览器仍在使用缓存文件,即使错误已经修复,他也无法访问。他将不得不等到浏览器从服务器上提取新文件,而不是使用缓存版本。(显然,我认为用户不知道什么时候会推送错误修复,浏览器什么时候会拉新文件,或者如何在不等待浏览器的情况下手动拉新文件。)

我想了解一下这种缓存方法,以及如何克服上面提到的问题。

在文件中添加这样的参数将导致浏览器重新下载。通过更改"关键修复"的参数,您将实现每个客户端重新下载文件,即使是缓存的。

通过给文件一个随机参数,您可以在每次重新加载时强制下载。请注意,这将增加您的流量和加载时间。

<link rel="stylesheet" type="text/css" href="style.css?v=<?php echo rand(); ?>" />

这是一个非常简单的机制。每次更改js或css文件时,都必须更改此"v"参数。

您可以在此处阅读如何自动执行:http://www.codeproject.com/Articles/203288/Automatic-JS-CSS-versioning-to-update-browser-cach