图片访问优化
图片访问优化
选取正确的图片格式
类型 | 是否支持透明 | 是否支持动画 | 浏览器支持 | 压缩类型 |
---|---|---|---|---|
PNG | Yes | No | All | 无损压缩 |
JPEG | No | No | All | 有损压缩 |
WebP | Yes | Yes | Not all | 无损压缩 |
GIF | Yes | Yes | All | 无损压缩 |
PNG
具有更强的色彩表现力,可以很好的展示图片,但是图片的体积大,所以一般 PNG 的使用场景是在需要清晰的保存图片使用
JPEG
色彩表现力较 PNG 表现较差,有损压缩,但是图片体积小,一般网站的图片使用都是这种格式
压缩图片
- 使用插件来对图片进行压缩,如:
1 | npm install --save-dev image-webpack-loader |
使用
picgo
其支持与图床同步,可以较好的搭建一体化的流程
图片 CDN
可以在用户与服务器之间添加 CDN 层,图像 CDN 专门从事图像的转换、优化和分发,对于从图像 CDN 加载的图像,图像 URL 不仅指示要加载的图像,还指示大小、格式和质量等参数。可以让用户与 CDN 交互的图片的体积更小,加快加载速度
CDN 的使用,这里我使用的是 又拍云 - 加速在线业务 - CDN 加速 - 云存储 (upyun.com)
其 CDN 的使用免费,可以较好的处理一些简单的业务需求
响应式图片
简单来说就是针对不同的分辨率调整显示不同大小的图片尺寸,可以修改对应的 CSS 也可以修改对应的 JS 文件
图床
如果图片的体积较大或者数量较多,那么对于服务器的流量来说就是一种摧残,而图床则是处理这个问题的方法之一
我们可以将图片存放在图床上,在使用中就直接使用图床所提供的外链即可
,图床尤其是免费的图床都不完全的稳定,可能会突然丢失图片,所以注意重要图片的备份
对 Hexo 的优化
本博客使用的是 Hexo + butterfly 构建的网站,部署在华为云上,但是在华为云服务器是按照流量计费,对于其中的大图片以及大文件都需要消耗流量,所以我这里对其进行优化
Jsdelivr + GitHub + ImgBot
Link: Jsdelivr Imgbot - Automatic image compression
图床
图床我选择的是 GitHub 作为图片托管,原因主要是因为在 Hexo 的初次创建中,我就在 GitHub 上传创建了一个个人的博客页,所以就使用其作为静态文件仓库
创建过程可以参考:博客搭建(一)
CDN
GitHub 对于大部分的访问者来说访问速度慢,所以这里使用了 Jsdelivr 作为图片 CDN 来对图片的访问过程进行加速
1 | // load any GitHub release, commit, or branch |
以上是最基础的使用方法,是直接对 GitHub 上的资源进行加速
图片压缩
为了简化图片上传,压缩等操作,这里直接在 GitHub 上使用了 ImgBot
它可以自动的将仓库里的图片进行压缩,并发布一个 Merge 你只需要合并分支即可
如果需要更详细的配置,需要在目录中添加配置文件: .imgbotconfig
1 | { |
具体意思可以看:Imgbot - Docs