ACP2E-5143: GraphQL route查询呈现未请求的CMS页面内容
ACP2E-5143修补程序修复了以下问题:即使仅请求URL路由字段,GraphQL route查询也会呈现完整的CMS页面内容,包括页面生成器小部件和产品列表,这会减慢URL解析速度。 安装Quality Patches Tool (QPT) 1.1.84时,此修补程序可用。 修补程序ID为ACP2E-5143。 请注意,此问题计划在Adobe Commerce 2.4.10中修复。
受影响的产品和版本
为Adobe Commerce版本创建了修补程序:
- Adobe Commerce(所有部署方法) 2.4.7-p9
与Adobe Commerce版本兼容:
- Adobe Commerce(所有部署方法) 2.4.4 - 2.4.7-p10
magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。问题
GraphQL route查询呈现完整的CMS页面内容的问题,包括页面生成器小工具和产品列表,即使仅请求URL路由字段也是如此,这会降低URL解析速度。
先决条件:
页面生成器已安装。
重现步骤:
-
转到“管理员”>“Content”>“Elements”>“Pages”,然后单击“Add New Page”。
-
输入页面详细信息,将 Enable Page 设置为Yes,然后单击 Content 部分中的Edit with Page Builder。 在页面生成器面板中展开Add Content,然后将 Products 占位符拖到舞台上,或将目录产品小组件插入到页面内容中。
-
在“管理员”中,转到Stores > Settings > Configuration。 在左侧面板中的 General 下,选择Web,然后展开Default Pages。 将 CMS Home Page 设置为新页面,然后单击Save Config。
-
发送以下GraphQL请求:
code language-none query ResolveURL($url: String!) { route(url: $url) { relative_url redirect_code type ... on CmsPage { identifier __typename } ... on ProductInterface { uid __typename } ... on CategoryInterface { uid __typename } __typename } } -
为请求使用以下变量:
code language-none { "url": "/" }
预期的结果:
route查询返回CMS主页的请求路由元数据和类型鉴别器字段,但不呈现其完整内容。
实际结果:
route查询呈现完整的CMS主页内容,即使仅请求路由元数据和类型鉴别器字段也是如此。- Page Builder小组件加载产品集合,从而增加响应时间和每个请求的数据库查询次数。
应用修补程序
要应用单独的修补程序,请根据您的部署方法使用以下链接:
- Adobe Commerce或Magento Open Source内部部署: Quality Patches Tool指南中的Quality Patches Tool >使用情况
- 云基础架构上的Adobe Commerce: Commerce on Cloud Infrastructure指南中的升级和修补程序>应用修补程序
相关阅读
要了解有关Quality Patches Tool的更多信息,请参阅: