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
magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。問題
GraphQL route查詢轉譯完整的CMS頁面內容(包括頁面產生器Widget和產品清單)的問題,即使僅要求URL路由欄位也一樣,這會降低URL解析速度。
必要條件:
頁面產生器已安裝。
要再現的步驟:
-
前往「管理員> Content > Elements > Pages」,然後按一下Add New Page。
-
輸入頁面詳細資料,將 Enable Page 設定為Yes,然後按一下 Content 區段中的Edit with Page Builder。 展開「頁面產生器」面板中的Add Content,並將 Products 預留位置拖曳到舞台上,或將目錄產品Widget插入頁面內容。
-
在Admin中,移至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首頁內容。 - 頁面產生器Widget會載入產品集合,增加回應時間以及每個請求的資料庫查詢數。
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool指南中的Quality Patches Tool >使用狀況
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱: