我注意到许多网站的GET
和js
文件附加了css
参数。因此文件类似于:path/to/my.css?v=49
或path/to/my.js?v=1.4
。
我做了一些研究,我知道它用于文件缓存,因此浏览器不会在每次请求时再次下载文件。我试图理解它究竟是如何工作的但老实说,我不知道。
我看过一些帖子说你告诉浏览器每隔几分钟就下载一个新文件,但我认为这可能有点棘手,因为如果我推动一个重大变化(甚至是一个关键的错误修复) )和它试图访问网站的用户,但他的浏览器仍在使用缓存文件,即使修复了错误,他也无法访问它。他将不得不等到他的浏览器将从服务器提取新文件而不是使用缓存版本。 (显然我假设用户不知道何时会推送错误修复,浏览器何时会提取新文件或如何在不等待浏览器的情况下手动提取新文件。)
我想了解一下缓存方法以及如何克服上面提到的问题。
答案 0 :(得分:4)
将这样的参数添加到文件将导致浏览器重新下载。通过更改"关键修复"上的参数您将实现每个客户端重新下载文件,即使缓存。
您可以通过为文件提供随机参数来强制下载每次重新加载。请注意,这会增加您的流量和加载时间。
<link rel="stylesheet" type="text/css" href="style.css?v=<?php echo rand(); ?>" />
答案 1 :(得分:1)
这是非常简单的机制。每次更改js或css文件时都必须更改此“v”参数。
您可以在此处阅读如何自动执行此操作:http://www.codeproject.com/Articles/203288/Automatic-JS-CSS-versioning-to-update-browser-cach