给博客找个放图的地方:把静态媒体搬上 Cloudflare R2
想把截图直接贴进文章,又不想看着仓库一天天长胖。于是给站点接了个对象存储,顺手把「防盗链」这件事想清楚了。
想把截图直接贴进文章,又不想看着仓库一天天长胖。于是给站点接了个对象存储,顺手把「防盗链」这件事想清楚了。
「页脚不太好看,桌面端不对称,移动端靠左还有点单调。」收到这个反馈时,我先截图量了一遍,发现「不好看」背后其实是五个可以量化的问题。
移动端适配最怕「看起来没问题」。我一开始靠肉眼和截图判断,结果漏了好几个只有真机宽度才暴露的问题。后来改成用无头浏览器量数据,才发现截图本身也会骗人。
「不上传、没后端,所以很安全」——这句话只对了一半。没有服务端确实砍掉了大半攻击面,但风险不会消失,它转移到了两个地方:访客的浏览器和依赖链。
「加了工具,首页会不会变慢?」这是我自己最担心的问题。解决办法不是压缩代码,而是分清两件事:没进页面不该花钱,进了页面第一次别等。
工具上线后收到一句反馈:压缩完对结果不满意,想换个质量再来一次,发现按钮是灰的,只能刷新页面重来。
第一反应是「用户操作不对」,第二反应是「不对,这是我的问题」。
jSquash 把 mozjpeg、libwebp、oxipng 编成了浏览器能用的 WASM 包,API 看起来很简单:init() 然后 encode()。真正接进去,我踩了三个坑。
最省事的图片压缩写法是三行:createImageBitmap 解码、画到 canvas、canvas.toBlob('image/webp', 0.75)。我先按这个思路做了个原型,然后发现它和「专业压缩工具」差了不止一个档次。
这个站点托管在 Cloudflare Pages 上,只有构建产物,没有服务器。想加「在线工具」,第一件事不是选技术,而是把边界钉死:哪些方案一开始就不能碰。
折腾了几天?Bro,AI时代了,几个小时的事情(,Connexion Collective 的架子终于搭起来了。