• 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 问题反馈可发送邮件到stubbornhuang@qq.com

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

WordPress – 网站性能优化,设置浏览器缓存静态资源

WordPress 发布于2023-07-18 阅读 2,238次 0次评论 0次点赞 本文共1859个字,阅读需要5分钟。

1 如何让浏览器缓存静态资源

在使用pagespeed.web.dev测试网站性能时,在测试的结果页面我们可以看到有一个采用高效的缓存策略提供静态资源

WordPress - 网站性能优化,设置浏览器缓存静态资源-第0张图片

在上图中所示的分析页面我们可以看到三个主要的信息:网址、缓存TTL、传输文件大小,其中缓存TTL就是表示静态资源在浏览器中缓存的时间。

为了浏览器主动缓存网站的静态资源,比如说图片文件、字体文件、js文件、css文件,避免每次都从服务器进行请求,需要在服务器端设置HTTP响应头,用来标志浏览器需要缓存某些静态资源。

以下是与缓存相关的标头:

  • Cache-Control:用于控制资源的缓存机制。通过设置值为 public 或 private 来指定资源是否可以被缓存,并通过设置 max-age 指定资源应该被缓存的时间长度。
  • Expires:允许指定一个过期时间,过期后,浏览器必须重新获取资源。
  • ETag:允许服务器标识资源,并使用 If-None-Match 请求头进行缓存验证。
  • Last-Modified:允许服务器指定资源最后修改的时间,并使用 If-Modified-Since 请求头进行缓存验证。

比如说:

Cache-Control: max-age=31536000

max-age 参数告诉浏览器它应该将资源缓存多长时间,单位为秒。以下示例将持续时间设置为 31536000,对应于 1 年:60 秒 × 60 分钟 × 24 小时 × 365 天= 31536000 秒。

通过在服务器中对对应文件设置相应的HTTP标头标志在浏览器中缓存静态资源。

2 WordPress网站的静态资源缓存

2.1 Nginx

如果你的服务器使用的Nginx进行代理,可以参考以下代码设置静态文件缓存

    # 图片文件
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }

    # js,css文件
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }

    # 字体文件
    location ~ .*\.(eot|ttf|woff|woff2)?$
    {
        expires      180d;
        error_log off;
        access_log /dev/null; 
    }

2.2 Apache

如果你的服务器使用的Apache进行代理,可以参考以下代码设置静态文件缓存

## EXPIRES HEADER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/svg "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES HEADER CACHING ##

3 合理的设置静态资源缓存

如果你的静态资源经常更新,可以将其缓存设置为 no-cache,但浏览器仍会缓存该资源,不过首先会与服务器进行检查,以确保资源仍然是最新的。也可以减少其expire的时长,比如说几个小时,避免影响网站的其他功能。所以说并不是缓存期越长越好。而是需要根据实际需求进行权衡,以决定资源的最佳缓存期。

参考链接

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:WordPress – 网站性能优化,设置浏览器缓存静态资源

原文链接:https://www.stubbornhuang.com/2729/

发布于:2023年07月18日 10:48:20

修改于:2023年07月18日 10:48:20

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
C++ - Yolo的letterbox图片预处理方法,缩放图片不失真
C++
下一篇
C++ - 基于no-boost Asio实现一个异步TCP服务器
C++
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

关注我们的公众号

微信公众号