如何更新缓存

问题描述

如何不填写js、css、img的版本号,通过meta来更新缓存呢?

问题出现的环境背景及自己尝试过哪些方法

因为页面太多也没有项目搭建,纯html+css+js的方式来做得,要手动的更改版本号真的很麻烦。
据我说了解的就是想要协商缓存,检查服务器文件是否更新,如果更新则重新下载,如果没有更新则利用缓存。
但是以下三个meta据我所了解,有优先级、什么之分的,我不太清楚是每次都要重新下载还是跟我说的一样。

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">

你期待的结果是什么?实际看到的错误信息又是什么?

以上代码选取哪几个或者是怎么改,能达到

检查服务器文件是否更新,如果更新则重新下载,如果没有更新则利用缓存。

这种效果。希望各位大佬能够解决我的疑惑。
因为关于缓存这一块网上的说法太抽象了。

阅读 3k
2 个回答

那三行meta之前配置过,然并卵,查了很久也没成功过,不知道是不是需要额外的搭配才能生效。

提供一点思路:
首先要明白一点,浏览器中缓存资源,比如js、css、image之类的,其实是从服务器端拿的。
可以根据实际情况,来配置服务端的缓存时间,例如nginx就可以对每种不同的资源设置不同的缓存期限,超过设置的期限后,下次再问服务端拿,就会拿到最新的资源。

所以,可以设置浏览器不做缓存,服务端设置html不缓存,然后资源加后缀(最简单的比如时间戳),以此来保证资源被修改之后,可以加载到最新的。当然,前提是页面中数据渲染,都是通过外联的js中的接口传输后渲染的(比如单页应用)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题