之前看到 https://www.v2ex.com/t/648915 发现 Amazing 啊,但是单独开一个服务感觉怪怪的。
于是有 https://github.com/zhshch2002/caddy-webp
参考了 https://github.com/webp-sh/webp_server_go 的代码,包括对 Safari 的处理。
最重要的一点是——我们访问的 URL 可以完全不用改变,访客访问的依然是 https://image.nova.moe/tsuki/tsuki.jpg ,但是得到的图片格式为:image/webp,而且体积减少了不少。
这一点也实现了,只需要在 Caddyfile 里加一个webp
指令,就可以截取root
下的文件来自动转换。(如果把顺序提升到 proxy 之前,是不是也可处理以反代后端相应的图片,待会试试)
本质上插件是截取的正常 Handler 的响应,识别 content type,然后换成 webp,大功告成!
by the way,这只是个实验性的插件,没有特别完善