pagespeed_no_transform 未考虑属性

pagespeed_no_transform attribute not taken in account

我正在使用 Nginx PageSpeed 模块,在使用 jquery.matchHeight.js 管理图像时遇到了问题。我决定禁用对这些特定图像的优化,我添加了 pagespeed_no_transform 属性(我也尝试了 data-pagespeed-no-transform 但没有成功):

<img src="https://example.com/image-icon_300.png" alt="Alt title" pagespeed_no_transform />

不幸的是,PageSpeed 似乎没有考虑这个属性。更糟糕的是,它纯粹 删除它 并进行优化。下面是呈现的代码:

<img src="https://example.com/image-icon_300.png.pagespeed.ce.gkz42_jTc5@2x.png" alt="Alt title" data-pagespeed-url-hash="627608977" onload="pagespeed.CriticalImages.checkImageForCriticality(this);" width="240" height="200">

因为这与我的 PageSpeed version/configuration 有关,这是我的 Nginx 配置文件:

# Header X-Page-Speed: 1.13.35.2-0
server {
  # Ansible managed
  pagespeed on;
  pagespeed FileCachePath /var/ngx_pagespeed_cache;

  location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
    add_header "" "";
  }
  location ~ "^/pagespeed_static/" { }
  location ~ "^/ngx_pagespeed_beacon$" { }
}

对于面临相同问题的人来说,它似乎非常有效!

PageSpeed 对图像进行了多项优化,主要是:

  • 转换(到 PNG、JPEG 或 WebP)
  • 重新压缩
  • 调整大小
  • 内联
  • 缓存

使用 data-pagespeed-no-transform 属性时,您是在告诉 PageSpeed 不要 "transform" 您的图片,但这并不意味着它不会被缓存 ,这就是为什么您仍然看到 https://example.com/image-icon_300.png.pagespeed.ce.gkz42_jTc5@2x.png URL.

要知道您的图像是否已转换,您需要检查其 URL:

  • 仅缓存:image-icon_300.png.pagespeed.ce.gkz42_jTc5@2x.png
  • 调整大小 + 缓存:150x150ximage-icon_300.png.pagespeed.ce.gkz42_jTc5@2x.png
  • 转换 + 调整大小 + 缓存:ximage-icon_300.png.pagespeed.ic.gkz42_jTc5@2x.webp
  • 内联:data:image/jpeg;base64,…