持久化缓存(服务器到底要怎么设置缓存)

本文探讨了服务器如何设置静态资源的缓存时间和策略,以及在资源更新时如何强制刷新。强调了HTML文件不应开启缓存,而应通过Service Worker或更改资源路径来处理更新。在webpack中,通过[hash]或[chunkhash]实现持久化缓存,确保只更新受影响的文件。最后,建议先部署静态资源,再部署页面,以确保平滑升级并防止用户访问错误版本。
摘要由CSDN通过智能技术生成

这个问题最初是8月初QQ音乐现场面试的时候有问到过,当我打算流畅的从浏览器缓存策略到缓存位置大谈特谈的时候,面试官打断了我,直接问:

  1. 服务器怎么设置各种资源的缓存,缓存多久?
  2. 那如果项目已经上线还在强缓存范围内的时候页面出现bug,该怎么替换这个页面?
Q: 服务器怎么设置各种资源的缓存,缓存多久?

首先是静态资源缓存的问题:

  • 如果长时间不变就设置久一点,比如很常见的是设置一年的缓存时间:
// 设置缓存时间为1年
Cache-Control: max-age=31536000
  • 也可以同时开启cdn,将静态资源上传到 cdn 服务商。
  • 如果经常变化的资源就:Cache-Control: no-cache
    no-cache会在经过服务器确认后再使用缓存,换句话说就是:没有服务器的确认,任何本地缓存的版本内容都是不可信的(这个字段经常拿来和no-store对比: no-store意味着告诉浏览器不要缓存它)。</
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值