我想根据用户屏幕分辨率提供自适应图像尺寸。
我遇到了这个很棒的解决方案Adaptive Images,但是此解决方案无法与清漆一起使用。
因为例如 - 如果带有移动设备的客户端将请求图像,那么该图像将作为移动设备的小图像存储在清漆缓存中。此图片也将在稍后提供给桌面用户。
我认为,如果我找到一种基于cookie值(adaptive images脚本的一部分)分离缓存页面的方法 - 那么每个图像将保持基于用户屏幕宽度。
因此,如果我没有错,那么我上面描述的糟糕情况将会得到解决。请帮我为此创建合适的vcl代码。
1.分离应仅适用于图像(jpg,gif,png)
2.它应该根据cookie_a
谢谢
答案 0 :(得分:0)
基本上你需要做的就是更改vcl_hash方法,其中varnish存储数据以使用cookie,只有当url是图像时(jpg,gif,png)。 为了简单起见,我们假设Varnish将图像存储在密钥" image.jpg"中,你要做的就是告诉Varnish密钥是' image- [大小] .JPG"其中[size]可以是cookie,图像大小或两者兼而有之 要解决“仅适用于图像”的问题。问题你必须做像
这样的事情if (req.url ~ '(jpg|gif|png)') {
// Change the hash here
}
考虑到这一点,here你可以找到一个很好的例子来说明这一点 其他有用的网站: