鸟站阅读总很慢,原来是字库太大所致。如果使用缓存,结果看起来应该会比较好!
在 2019 年暑假开始的样子,鸟哥开始转换自己的网站,变成了强迫 https 而且也修订了字库案,这样,不同的设备, 查阅相同的网页时『可能』会得到比较好的显示效果。就这样网站运作了一些时刻。
不过,近期以来,很多的读者开始来信,说网站怎么这么慢!一开始鸟哥以为是服务器出问题!后来渐渐发现,大多询问这些问题的伙伴, 连接到我 server 的网络带宽都不高,看起来就是带宽都被字库案占据了!连鸟哥自己上课时,也都会发现,自己的网站显示有点顿, 连在台湾都这么顿了,那在其他来源的朋友,会很顿,这也是应该的...
想说,不想要修改原有的设计了,因为我太懒~加上最近被环工模式搞到头很痛...于是,就开始幻想,有没有什么可以增加缓存时间的方法? 以 web font cache 之类的方式去 google,结果找到不少篇谈到『 Cache control 』的方式,但是都没有仔细讲说这个东西怎么用? 后来查到这一篇:
该篇文章讲的超级仔细!可以从 http server 着手去处理!在每个 webpage 的 header 处,主动填上需要的数据,让浏览器去判断有没有 cache 了。 当然,这也是标准的协定语法,倒不是强迫用户端浏览器做啥怪事。设置上就显的非常简单啊!这样做即可:
[root@www ~]# vim /var/www/html/somewhere/.htaccess <filesMatch ".(otf|ttf)$"> Header set Cache-Control "max-age=604800, public" </filesMatch>
Cache-Control 就是主要的设置,而参数内的 max-age 指的就是要缓存到浏览器多久时间,单位是秒。鸟哥上面将文件放置了 1 周, 好像有点短...你可以依据你的环境需求来处理。鸟哥也仅针对 .otf, .ttf 这种字库案做缓存设计,其他的网页组件就没有被指定缓存了。 而那个 public (公开),指的是所有中间界面的服务器,也就是所谓的 CDN 环境,也是直接进行缓存。如果指定为 private 的话, 那就是只有终端用户才会缓存的意思。
总之,刚刚加上这设置之后,立刻来查找一下系统,就可以很快速的展示网页了!也就是说,未来当字库案过了缓存期限, 只要等待第一个网页重新加载,那么这些字库就会被缓存,接下来的所有网站内的文档,就能顺利展示,而不会持续下载字库啰!
鸟哥自己的感觉是,觉得很快啊!哈哈哈!另外,除了修改 .htaccess 之外,事实上,你也可以通过 PHP 的功能来处理! 毕竟不是所有人都可以自由的设计自己的 .htaccess,也不是所有的人都使用相同的模块的。如果有需要,文末的参考数据也能看看, 通过简单的 PHP 语法,也可以针对不同的扩展名来设计缓存的时间喔!