Fout 404 op alle pagina's vanwege probleem met het opslaan van inhoud
Dit artikel bevat een oplossing voor het probleem met de Adobe Commerce-infrastructuur op locatie en Adobe Commerce met betrekking tot de cloud-infrastructuur. Er is een fout van 404 opgetreden bij het openen van een winkelpagina of Commerce Admin.
Betrokken producten en versies
- Adobe Commerce op locatie 2.2.x, 2.3.x
- Adobe Commerce op cloud-infrastructuur 2.2.x, 2.3.x
Probleem
De toegang tot van om het even welke storefront pagina of Admin resulteert in de 404 fout (de "Wiops, onze slechte…"pagina) na het uitvoeren van verrichtingen met geplande updates voor de activa van de opslaginhoud gebruikend Inhoud het Opvoeren(updates voor de activa van de opslaginhoud die gebruikend de Magento _Staging moduleworden gepland). U hebt bijvoorbeeld een product met een geplande update verwijderd of de einddatum voor de geplande update verwijderd.
Een opslaginhoudselement bevat:
- Product
- Categorie
- Catalogusprijsregel
- Regel voor winkelprijs
- CMS-pagina
- CMS-blok
- Widget
Sommige scenario's worden besproken in de hieronder sectie van de Oorzaak.
Oorzaak
De flag
-tabel in de database (DB) bevat ongeldige koppelingen naar de staging_update
-tabel.
Het probleem heeft te maken met het opslaan van inhoud. Hieronder volgen twee specifieke scenario's. Houd er rekening mee dat er wellicht meer situaties zijn die de kwestie veroorzaken.
Scenario 1: het schrappen van een activa van de opslaginhoud die:
- heeft een update gepland met Inhoud het Staging
- de update heeft een einddatum (de vervaldatum waarna het bijgewerkte element terugkeert naar de vorige versie)
- de einddatum van de update in het verleden ligt
Het is mogelijk dat de uitgave niet optreedt als een verwijderd element geen einddatum heeft voor de geplande update.
Scenario 2: Verwijderend de einddatum/tijd van een geplande update.
Identificeer als uw kwestie verwant is
Voer de volgende DB-query uit om te bepalen of het probleem dat u ondervindt het probleem is dat in dit artikel wordt beschreven:
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';
Als de vraag een lijst terugkeert waar update_exists
waarde "0"is, dan bestaat een ongeldige verbinding aan de staging_update
lijst in uw gegevensbestand, en de stappen die in de sectie van de Oplossingworden beschreven zullen helpen om de kwestie op te lossen. Hieronder ziet u een voorbeeld van het queryresultaat met update_exists
-waarde gelijk aan "0":
Als de query een tabel retourneert waarvan de update_exists
-waarde "1" of een leeg resultaat is, betekent dit dat uw uitgave niet gerelateerd is aan het uitvoeren van testupdates. Hieronder ziet u een voorbeeld van het queryresultaat met update_exists
-waarde gelijk aan "1":
In dit geval, zou u naar de Plaats neer Troubleshootervoor het oplossen van problemenideeën kunnen verwijzen.
Oplossing
-
Voer de volgende query uit om de ongeldige koppeling naar de tabel
staging_update
te verwijderen:code language-sql DELETE FROM flag WHERE flag_code = 'staging';
-
Wacht tot de uitsnijdtaak is uitgevoerd (kan maximaal vijf minuten worden uitgevoerd als de functie correct is ingesteld) of voer de taak handmatig uit als u de uitsnijdbewerking niet hebt ingesteld.
Het probleem moet direct worden opgelost nadat de ongeldige koppeling is hersteld. Als het probleem voortduurt, voorlegt een steunkaartje.