通过参数缓存破坏 [英] Cache busting via params

查看:25
本文介绍了通过参数缓存破坏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们希望在生产部署时缓存 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆