浏览器缓存这个配置,做好了回头客的加载速度能快一半。这个投入很小,收益很明显。
缓存的逻辑是这样的。用户第一次访问你的站,浏览器把图片、CSS、JS 这些文件下载下来存到本地。下次再访问,浏览器发现这些文件本地有了,就直接用,不用再从服务器拉一遍。这样加载就快多了。
那怎么配。在服务器端给静态资源设置缓存时间。图片、字体这些很少变的,缓存时间可以设很长,比如一年。CSS 和 JS 这些会跟着版本变的,也设长一点,但要配合版本号。怎么配合,就是你更新了文件之后,改一下引用时的版本号,比如从 style.css?v=1 改成 v=2。这样浏览器发现地址变了,就会重新下载。
这里的坑是不设版本号。有些人给 CSS 设了一年的缓存,结果更新了样式,用户那边看到的还是旧的。查半天查不出问题,其实是缓存。所以缓存时间长,一定要配版本号。
还有一个概念叫协商缓存。就是浏览器不确定本地文件是不是最新的,就问服务器一句。服务器说没变,浏览器就用本地的。这个方式比强制缓存慢一点,因为多了一次请求,但能保证内容最新。
我一般的配置是这样的。图片字体这些用强缓存加长时间。CSS 和 JS 用强缓存加版本号。HTML 页面用协商缓存,别强缓存,因为页面内容经常变。
配置完之后,可以打开浏览器的开发者工具,看网络请求。第二次访问的时候,看静态资源是不是从缓存里取的。是的话,就配对了。
这个优化一次配好,长期受益。特别是内容站,用户回访多,效果更明显。
—— 来自 图趣网 - 优秀网站分类目录 的分享