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を検索キーワードとして使用して、パッチを検索します。イシュー
URL ルーティングフィールドのみが要求された場合でも、ページビルダーウィジェットや商品リストを含むCMS ページコンテンツ全体がGraphQL route クエリでレンダリングされ、URLの解決が遅くなる問題。
前提条件:
Page Builderがインストールされています。
複製する手順:
-
管理者/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 ホームページのコンテンツをレンダリングします。- ページビルダーウィジェットで製品コレクションが読み込まれるため、リクエストあたりの応答時間とデータベースクエリの数が増加します。
パッチを適用する
個別のパッチを適用するには、デプロイメント方法に応じて次のリンクを使用します。
- Adobe CommerceまたはMagento Open Source オンプレミス:Quality Patches Tool ガイドのQuality Patches Tool >使用状況
- クラウドインフラストラクチャ上のAdobe Commerce:「 アップグレードとパッチ > Commerce クラウドインフラストラクチャ上のパッチを適用」ガイド
関連トピックス
Quality Patches Toolについて詳しくは、次を参照してください。
- Quality Patches Tool: ツール ガイドの品質パッチ のセルフサービス ツール