ACP2E-5143: GraphQL route查詢轉譯未請求的CMS頁面內容

ACP2E-5143修補程式修正GraphQL route查詢轉譯完整的CMS頁面內容的問題,包含頁面產生器介面工具集和產品清單,即使僅要求URL路由欄位亦然,這會降低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頁面內容(包括頁面產生器Widget和產品清單)的問題,即使僅要求URL路由欄位也一樣,這會降低URL解析速度。

必要條件:

頁面產生器已安裝。

要再現的步驟:

  1. 前往「管理員> Content > Elements > Pages」,然後按一下​Add New Page。

  2. 輸入頁面詳細資料,將​ Enable Page ​設定為​Yes,然後按一下​ Content ​區段中的​Edit with Page Builder。 展開「頁面產生器」面板中的​Add Content,並將​ Products ​預留位置拖曳到舞台上,或將目錄產品Widget插入頁面內容。

  3. 在Admin中,移至​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. 頁面產生器Widget會載入產品集合,增加回應時間以及每個請求的資料庫查詢數。

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

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