通过参数缓存破坏 [英] Cache busting via params
问题描述
我们希望在生产部署时缓存 bust,但不要浪费大量时间来找出这样做的系统.我的想法是将参数应用到具有当前版本号的 css 和 js 文件的末尾:
We want to cache bust on production deploys, but not waste a bunch of time off the bat figuring out a system for doing so. My thought was to apply a param to the end of css and js files with the current version number:
<link rel="stylesheet" href="base_url.com/file.css?v=1.123"/>
两个问题:这会有效地破坏缓存吗?参数是否会导致浏览器永远不会缓存来自该 url 的响应,因为参数表明这是动态内容?
Two questions: Will this effectively break the cache? Will the param cause the browser to then never cache the response from that url since the param indicates that this is dynamic content?
推荐答案
参数 ?v=1.123
表示一个查询字符串,因此浏览器会认为它是一个新的路径,比如,?v=1.0
.从而导致它从文件加载,而不是从缓存加载.如你所愿.
The param ?v=1.123
indicates a query string, and the browser will therefore think it is a new path from, say, ?v=1.0
. Thus causing it to load from file, not from cache. As you want.
而且,浏览器会假设您下次调用 ?v=1.123
时源将保持不变,并且应该用该字符串缓存它.因此,无论您的服务器如何设置,它都会保持缓存状态,直到您移动到 ?v=1.124
左右.
And, the browser will assume that the source will stay the same next time you call ?v=1.123
and should cache it with that string. So it will remain cached, however your server is set up, until you move to ?v=1.124
or so on.
这篇关于通过参数缓存破坏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!