我正在尝试将 CSS 媒体查询与 Jinja 和 Flask 一起使用来确定设备类型并根据设备提供适当大小的图像。来自手机的请求将获得比台式机、平板电脑等更小的图像。
问题是{{ post|get_image(post, 480) }}
独立于媒体查询进行评估,从而触发get_image
每个实例的自定义模板过滤器。 get_image
也是为设备呈现正确图像的地方,因此多次(可能是不必要的)调用会对性能产生负面影响。
理想情况下,一次调用只执行一个媒体查询get_image
,但挑战在于媒体查询和 Jinja 完全相互独立,因为一个对另一个一无所知。
我非常感谢改进我的方法的替代方法或建议。提前致谢!
这是媒体查询的示例:
@media only screen and (max-device-width: 480px) {
.post {
background: url("{{ post|get_image(post, 480) }}") no-repeat center center fixed;
}
}
@media only screen and (max-device-width: 1224px) {
.post {
background: url("{{ post|get_image(post, 1224) }}") no-repeat center center fixed;
}
}