【问题标题】:Sitecore - WebP image not getting generated from CDN with Dianoga toolSitecore - 没有使用 Dianoga 工具从 CDN 生成 WebP 图像
【发布时间】:2022-08-23 03:02:30
【问题描述】:

迪亚诺加版本5.4.1

环境描述Sitecore.NET 9.3.0 .NET 框架 4.7.2

您启用了哪些配置

  • Dianoga.DisableForSites.config
  • Dianoga.Jpeg.config
  • Dianoga.Log.config
  • Dianoga.Png.config
  • Dianoga.Svg.config
  • Dianoga.WebP.CDN.config
  • Dianoga.WebP.config

Web.config 更改:我已将 sitecore_media.ashx 类型替换为 \"Dianoga.MediaRequestHandler, Dianoga\" name=\"Sitecore.MediaRequestHandler\"

你期望看到的和你实际看到的

预期的:查看以 webp 格式下拉的图像

实际的:图像以原始格式(jpeg、png 等)接收,但不在 webp 中。

日志文件:所有日志文件都是空的。

注释在 Azure MediaProvider 中的 CD 上部署后,将扩展 webp 添加为 URL 参数。这应该会触发 MediaRequestHandler 中的 webp 优化器。但是 MediaProvider 似乎没有运行。在我当地的环境中,我不使用 CDN 并且 Dianoga 工作正常。我可能错过了什么?

  • 嗨@Mykyta,建议的解决方案对您有用吗?如果它解决了您的问题,请告诉我,否则请分享更多详细信息,以便我进行故障排除或接受它以帮助其他社区成员。

标签: azure sitecore webp azure-cdn sitecore9


【解决方案1】:

• 您的图像文件没有得到转换,因为可能存在conflict in the Sync/Async strategy.此外,由于'Dianoga.WebP.CDN.config'CDN中的配置是启用, 你不得不禁用“Dianoga.Strategy.MediaCacheAsync.config”环境。

此外,确保“媒体优化”通过启用启用‘Dianoga.Strategy.GetMediaStreamSync.config.disabled’ 配置设置和上面提到的那个。这将确保optimization will occur synchronously when the images are requested,从而确保图像文件的成功转换。

• 请检查'接受'在 CDN 中配置的标头包含在此标头中提到了缓存键作为接受的媒体格式列表.此标头说明可以进行哪些图像格式转换。例如:-the header can be ‘image/avif,image/webp,image/apng,image/*,*/*;q=0.8’ which means that the browser supports ‘WebP’ image format

此外,正如您在问题中所述,您似乎有启用‘Next-gen formats support’,但在这方面,你也必须换行''''在里面web.config 文件.

有关更多详细信息,请参阅以下文档链接以了解有关此操作的更多步骤:-

https://github.com/kamsar/Dianoga#optimization-strategies

【讨论】:

    【解决方案2】:

    如果你使用 Azure CDN (Microsoft) 或 Azure Front Door Classic 与 Azure CDN (Microsoft),Accept 标头不会传递到源服务器。 Dianoga 需要Accept 标头来了解它是否支持下一代图像格式。

    如果页面不是通过 Azure CDN 路由的,则 Accept 标头将仅针对页面请求传递到源服务器。 Dianoga 和 Sitecore 将使用扩展查询参数extension=webp,{other image formats} 生成媒体链接。如果此查询参数可用,则 Dianoga 将能够生成webp 格式,而无需读取媒体请求的Accept 标头。

    选项1:将 Azure CDN 升级到 Verizon Premium(成本高昂)并将标头传递回原始服务器,Dianoga 将能够优化并发送 webp 图像。

    选项 2:如果您的应用程序网关中有规则引擎,请创建一个规则以使用不同的标头名称发送 Accept 标头,并在 Dianoga 中使用该标头名称来生成 webp 格式。在请求到达 Azure CDN 之前,这需要一个规则引擎。

    Azure CDN (MS) does not forward the Accept Headers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多