Fehler 404 auf allen Seiten aufgrund eines Problems mit der Inhalts-Staging-Umgebung

Dieser Artikel bietet eine Fehlerbehebung für das Problem mit der Cloud-Infrastruktur, dass bei Adobe Commerce On-Premise und Adobe Commerce auftritt, wenn beim Zugriff auf eine Storefront-Seite oder die Commerce Admin ein 404-Fehler auftritt.

Betroffene Produkte und Versionen

  • Adobe Commerce On-Premises 2.2.x, 2.3.x
  • Adobe Commerce auf Cloud-Infrastruktur 2.2.x, 2.3.x

Problem

NOTE
Dieser Artikel gilt nicht für die Situation, in der beim Versuch, die Staging-Aktualisierung in der Vorschau anzuzeigen der Fehler 404. Wenn dieses Problem auftritt, öffnen Sie ein Support-Ticket.

Der Zugriff auf eine Storefront-Seite oder auf den Admin-Bereich führt zu einem 404-Fehler (die Seite „Hoppla, unsere schlechte …„), nachdem Vorgänge mit geplanten Aktualisierungen für Store-Content-Assets mithilfe von Content-Staging durchgeführt wurden (Aktualisierungen für Store-Content-Assets, die mit dem Magento_Staging-Modul geplant wurden). Sie haben beispielsweise ein Produkt mit einer geplanten Aktualisierung gelöscht oder das Enddatum für die geplante Aktualisierung entfernt.

Ein Store-Content-Asset umfasst:

  • Produkt
  • Kategorie
  • Katalogpreisregel
  • Warenkorb-Preisregel
  • CMS-Seite
  • CMS-Block
  • Widget

Einige Szenarien werden im folgenden Abschnitt Ursache erläutert.

Ursache

Die flag in der Datenbank (DB) enthält ungültige Verknüpfungen zur staging_update.

Das Problem betrifft das Staging von Inhalten. Im Folgenden finden Sie zwei spezifische Szenarien. Beachten Sie, dass es weitere Situationen geben kann, in denen das Problem Trigger hat.

Szenario 1: Löschen eines Store-Content-Assets, das:

  • für eine Aktualisierung mit Inhalts-Staging geplant
  • Die Aktualisierung hat ein Enddatum (d. h. das Ablaufdatum, nach dem das aktualisierte Asset auf seine vorherige Version zurückgesetzt wird)
  • Das Enddatum der Aktualisierung liegt in der Vergangenheit

Gleichzeitig tritt das Problem möglicherweise nicht auf, wenn ein gelöschtes Asset kein Enddatum für die geplante Aktualisierung hat.

Szenario 2: Entfernen des Enddatums/der Endzeit einer geplanten Aktualisierung.

Identifizieren, ob Ihr Problem im Zusammenhang steht

Um festzustellen, ob es sich bei dem Problem, das Sie haben, um das in diesem Artikel beschriebene handelt, führen Sie die folgende DB-Abfrage aus:

   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';

Wenn die Abfrage eine Tabelle mit update_exists Wert „0“ zurückgibt, ist in Ihrer Datenbank ein ungültiger Link zur staging_update-Tabelle vorhanden, und die im Abschnitt Lösung beschriebenen Schritte helfen bei der Lösung des Problems. Im Folgenden finden Sie ein Beispiel für das Abfrageergebnis mit update_exists Wert gleich „0“:

update_exists_0.png

Wenn die Abfrage eine Tabelle mit update_exists Wert „1“ oder ein leeres Ergebnis zurückgibt, bedeutet dies, dass Ihr Problem nicht mit Staging-Aktualisierungen verbunden ist. Im Folgenden finden Sie ein Beispiel für das Abfrageergebnis mit update_exists Wert gleich „1“:

updates_exist_1.png

In diesem Fall finden Sie unter "-Fehlerbehebung“Fehlerbehebungsideen.

Lösung

  1. Führen Sie die folgende Abfrage aus, um den ungültigen Link zur staging_update-Tabelle zu löschen:

    code language-sql
    DELETE FROM flag WHERE flag_code = 'staging';
    
  2. Warten Sie, bis der cron ausgeführt wird (wird bei ordnungsgemäßer Einrichtung in bis zu fünf Minuten ausgeführt), oder führen Sie ihn manuell aus, wenn Sie cron eingerichtet haben.

Das Problem sollte direkt nach der Behebung des ungültigen Links behoben werden. Wenn das Problem weiterhin besteht reichen Sie ein Support-Ticket.

Verwandtes Lesen

Best Practices zum Ändern von Datenbanktabellen im Commerce-Implementierungs-Playbook

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a