コンテンツ ステージングの問題により、すべてのページでエラー404
この記事では、ストアフロントページまたは Commerce管理者 にアクセスする際に404 エラーが発生する、Adobe Commerce オンプレミスおよびAdobe Commerce on cloud infrastructureの問題に関する修正点を説明します。
説明 description
影響を受ける製品とバージョン
- Adobe Commerce オンプレミス 2.2.x、2.3.x
- Adobe Commerce on cloud infrastructure 2.2.x、2.3.x
問題
メモ :この記事は、 ステージング更新プログラムのプレビューを試みたときに404 エラーが発生する状況には適用されません。 この問題が発生した場合は、 サポートチケット を開いてください。
ストアフロントページまたは管理者にアクセスすると、Content Staging (Magento_Staging モジュール を使用してスケジュールされたストアコンテンツアセットの更新)を使用してストアコンテンツアセットのスケジュールされた更新を行った後、404 エラー(「おっと、私たちの悪い…」ページ)が発生します。 例えば、スケジュールされた更新を含む製品を削除したり、スケジュールされた更新の終了日を削除したりすることができます。
ストアコンテンツアセットには、次のものが含まれます。
- 製品
- カテゴリ
- カタログ価格ルール
- カート価格ルール
- CMS Page
- CMSブロック
- ウィジェット
一部のシナリオについては、以下の「原因」セクションで説明します。
原因
データベース (DB)のflag テーブルにstaging_update テーブルへの無効なリンクが含まれています。
問題はコンテンツのステージングに関連しています。 以下は、2つの特定のシナリオです。問題をトリガーする状況が増える可能性があることに注意してください。
シナリオ 1:次のストアコンテンツアセットを削除しています:
- 更新がコンテンツステージングでスケジュールされている
- 更新には終了日(更新されたアセットが以前のバージョンに戻るまでの有効期限)が設定されています
- 更新の終了日が過去です
同時に、削除されたアセットにスケジュールされた更新の終了日がない場合、問題が発生しない可能性があります。
シナリオ 2:スケジュールされた更新の終了日時を削除します。
問題が関連しているかどうかを特定する
発生している問題がこの記事に記載されている問題であるかどうかを特定するには、次のDB クエリを実行します。
SELECT f.flag_data >'$.current_version' as flag_version, (su.id IS NOT NULL) as update_exists
-> FROM flag f
-> LEFT JOIN staging_update su
-> ON su.id = f.flag_data >'$.current_version'
-> WHERE flag_code = 'staging';
クエリがupdate_exists値が「0」のテーブルを返す場合、staging_update テーブルへの無効なリンクがデータベースに存在し、解決策セクションで説明されている手順が問題の解決に役立ちます。 次に、update_exists値が「0」に等しいクエリ結果の例を示します。
flag_vesionupdate_exists156042732101 row in set (0.00 sec)
クエリがupdate_existsの値が「1」または空の結果であるテーブルを返す場合、問題はステージング更新に関連していないことを意味します。 次に、update_exists値が「1」に等しいクエリ結果の例を示します。
flag_vesionupdate_exists15604273211 row in set (0.00 sec)
この場合、トラブルシューティングのアイデアについては、 サイトダウントラブルシューティング を参照してください。
解決策 resolution
- 次のクエリを実行して、
staging_updateテーブルへの無効なリンクを削除します:DELETE FROM flag WHERE flag_code = 'staging';. - cron ジョブが実行されるのを待ちます(適切に設定されている場合は最大5分で実行します)。cronを設定していない場合は手動で実行します。
問題は、無効なリンクを修正した後すぐに解決する必要があります。 問題が解決しない場合は、 サポートチケットを送信してください。
関連トピックス
Commerce実装プレイブックのデータベーステーブルを修正するためのベストプラクティス 。
。