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
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

GraphQL route查询呈现完整的CMS页面内容的问题,包括页面生成器小工具和产品列表,即使仅请求URL路由字段也是如此,这会降低URL解析速度。

先决条件:

页面生成器已安装。

重现步骤:

  1. 转到“管理员”>“Content”>“Elements”>“Pages”,然后单击“Add New Page”。

  2. 输入页面详细信息,将​ Enable Page ​设置为​Yes,然后单击​ Content ​部分中的​Edit with Page Builder。 在页面生成器面板中展开​Add Content,然后将​ Products ​占位符拖到舞台上,或将目录产品小组件插入到页面内容中。

  3. 在“管理员”中,转到​Stores > Settings > Configuration。 在左侧面板中的​ General ​下,选择​Web,然后展开​Default Pages。 将​ CMS Home Page ​设置为新页面,然后单击​Save Config。

  4. 发送以下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
      }
    }
    
  5. 为请求使用以下变量:

    code language-none
    { "url": "/" }
    

预期的结果:

route查询返回CMS主页的请求路由元数据和类型鉴别器字段,但不呈现其完整内容。

实际结果:

  1. route查询呈现完整的CMS主页内容,即使仅请求路由元数据和类型鉴别器字段也是如此。
  2. Page Builder小组件加载产品集合,从而增加响应时间和每个请求的数据库查询次数。

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

要了解有关Quality Patches Tool的更多信息,请参阅:

recommendation-more-help
commerce-operations-help-tools