清除index.html文件的缓存
在index.html的 meta 标签中定义禁止浏览器缓存该 html 文件(所有需要禁止缓存的 html 资源,都可以加上这些meta标签, 用来告知浏览器不要缓存这个html)
<head>
<meta http-equiv="cache-control" content="no-cache,no-store, must-revalidate" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
</head>
缓存控制
Cache-Control
Cache-Control除了在响应中使用,在请求中也可以使用
优先级从高到低是 Pragma -> Cache-Control -> Expires
在Cache-Control 中,这些值可以自由组合,多个值如果冲突时,也是有优先级的,而no-store优先级最高
缓存校验
Last-Modified
服务端在返回资源时,会将该资源的最后更改时间通过Last-Modified字段返回给客户端客户端下次请求时通过If-Modified-Since或者If-Unmodified-Since带上Last-Modified
If-Modified-Since:告诉服务器如果时间一致,返回状态码304
If-Unmodified-Since:告诉服务器如果时间不一致,返回状态码412
etag
etag的方式是这样:服务器通过某个算法对资源进行计算,取得一串值(类似于文件的md5值),之后将该值通过etag返回给客户端,客户端下次请求时通过If-None-Match或If-Match带上该值
If-None-Match:告诉服务器如果一致,返回状态码304,不一致则返回资源
If-Match:告诉服务器如果不一致,返回状态码412