我已经完成了“一件可怕的事情”,并通过执行以下操作将所有小于 500 像素的图像批量调整为最小 500 像素:

find -type d \( -path ./cache -o -path ./placeholder \) -prune -o  -type f -regextype posix-egrep -iregex '.*\.(jpg|gif|tif)$' -exec identify {} \; | awk '{ split($3, wh, /x/); } wh[1] < 500 && wh[2] < 500 { print $1; }'  | while read i; do convert $i -resize 500 -quality 90 $i ; done

然后我删除了 100x100 调整大小的图像:

find ./ -name "resized*" -exec rm {} \;

这在文件系统上完美运行。我删除了 Magento 图像缓存(在文件系统级别确认)

不幸的是,当我尝试运行 M2EPro 来修改 eBay 列表时,它收到一条错误消息,指出图像 < 500 像素。

如果我获取原始图像并使用 Magento Admin 重新保存它,它将被接受并正确修改,不会出现错误。

我的问题是 Magento 是否以某种方式在上传时存储或缓存图像尺寸? 我如何刷新或让 Magento 重新计算所有图像的值?

有帮助吗?

解决方案

我已经意识到它是由于eBay缓存了来自Nginx的30天过期缓存控制的图像URL。

其他提示

Magento 从来不做那件事。

它只是将产品图片保留在里面 media/catalog/product/ 目录,每当图像显示在前端并使用调整大小时 catalog/image 辅助类方法resize($width,$height),产品图像被调整大小并缓存到 media/catalog/product/cache.

许可以下: CC-BY-SA归因
scroll top