Aangepaste foutpagina's

Leer hoe u aangepaste foutpagina's implementeert voor uw door AEM as a Cloud Service gehoste website.

In deze zelfstudie leert u:

  • Standaardfoutpagina's

  • Vanaf waar de foutpagina's worden weergegeven

    • AEM-servicetype - auteur, publiceren, voorvertoning
    • CDN met Adobe-beheer
  • Opties om foutpagina's aan te passen

    • ErrorDocument Apache, instructie
    • ACS AEM Commons - de Handler van de Foutpagina
    • CDN-foutpagina's

Standaardfoutpagina's

Laten we controleren wanneer foutpagina's worden weergegeven, standaardfoutpagina's en waar ze vandaan komen.

Foutpagina's worden weergegeven wanneer:

  • pagina bestaat niet (404)
  • niet bevoegd om een pagina te openen (403)
  • serverfout (500) vanwege codeproblemen of de server is niet bereikbaar.

AEM as a Cloud Service verstrekt standaardfoutenpagina's voor de bovengenoemde scenario's. Het is een algemene pagina en komt niet overeen met uw merk.

De standaardfoutenpagina wordt gediend van het de diensttype van AEM (auteur, publiceert, voorproef) of van Adobe-Beheerde CDN. Zie de onderstaande tabel voor meer informatie.

Foutpagina aangeboden door
Details
AEM-servicetype - auteur, publiceren, voorvertoning
Wanneer het paginaverzoek door het de diensttype van AEM wordt gediend en om het even welke bovengenoemde foutenscenario's voorkomen, wordt de foutenpagina gediend van het de diensttype van AEM. Standaard wordt de 5XX-foutpagina overschreven door de CDN-foutpagina die door Adobe wordt beheerd, tenzij de header x-aem-error-pass: true is ingesteld.
CDN met Adobe-beheer
Wanneer Adobe-Beheerde CDN niet het de diensttype van AEM (oorsprongserver) kan bereiken, wordt de foutenpagina gediend van Adobe-Beheerde CDN. het is een onwaarschijnlijke gebeurtenis maar de moeite waard om voor te plannen.
NOTE
In AEM als Cloud Service, dient CDN een generische foutenpagina wanneer een 5XX fout van het achtereind wordt ontvangen. Als u wilt dat de werkelijke reactie van de backend kan worden doorgegeven, moet u de volgende koptekst toevoegen aan de reactie: x-aem-error-pass: true .
Dit werkt alleen voor reacties die afkomstig zijn uit AEM of de Apache-/Dispatcher-laag. Andere onverwachte fouten die afkomstig zijn van tussenliggende infrastructuurlagen tonen nog steeds de algemene foutpagina.

Bijvoorbeeld, zijn de standaardfoutenpagina's die van het de diensttype van AEM en Adobe-Beheerde CDN worden gediend als volgt:

Standaard de Paginas van de Fout van AEM

Nochtans, kunt u zowel de diensttype van AEM als Adobe-Beheerde CDN foutenpagina's aanpassen om uw merk aan te passen en een betere gebruikerservaring te verstrekken.

Opties om foutpagina's aan te passen

De volgende opties zijn beschikbaar om foutpagina's aan te passen:

Van toepassing op
Naam van optie
Beschrijving
AEM-servicetypen - publiceren en voorvertonen
ErrorDocument, instructie
Gebruik de ErrorDocumentrichtlijn in het Apache configuratiedossier om de weg aan de pagina van de douanefout te specificeren. Alleen van toepassing op de AEM-servicetypen - publiceren en voorvertonen.
AEM-servicetypen - ontwerpen, publiceren, voorvertonen
ACS AEM Commons Error Page Handler
Gebruik ACS de Handler van de Pagina van de Fout van AEM Commonsom fout over alle de diensttypes van AEM aan te passen.
CDN met Adobe-beheer
CDN-foutpagina's
Gebruik de CDN-foutpagina's om de foutpagina's aan te passen wanneer de door Adobe beheerde CDN het AEM-servicetype (oorspronkelijke server) niet kan bereiken.

Vereisten

In dit leerprogramma, leert u hoe te om foutenpagina's aan te passen gebruikend de ErrorDocument richtlijn, de ACS de Handler van de Pagina van de Fout van AEM en de CDN pagina's van de Fout opties. Voor het volgen van deze zelfstudie hebt u het volgende nodig:

Instellen

  • U kunt het AEM WKND-project klonen en implementeren in uw lokale AEM-ontwikkelomgeving door de onderstaande stappen uit te voeren:

    code language-none
    # For local AEM development environment
    $ git clone git@github.com:adobe/aem-guides-wknd.git
    $ cd aem-guides-wknd
    $ mvn clean install -PautoInstallSinglePackage -PautoInstallSinglePackagePublish
    
  • Voor het milieu van AEM as a Cloud Service, stel het project van AEM WKND door de volledig-stapelpijpleidingin werking te stellen, zie de niet-productiepijpleidingvoorbeeld.

  • Controleer of de WKND-sitepagina's correct worden weergegeven.

ErrorDocument Apache instructie to customize AEM Gageerde Error pages errordocument

Met de Apache-instructie ErrorDocument kunt u pagina's met door AEM bediende fouten aanpassen.

In AEM as a Cloud Service is de Apache-instructie-optie ErrorDocument alleen van toepassing op de servicetypen Publiceren en Voorvertonen. Het is niet van toepassing op het type van de auteursdienst aangezien Apache + Dispatcher geen deel van de plaatsingsarchitectuur uitmaakt.

Laat herzien hoe het AEM WKNDproject de ErrorDocument richtlijn Apache gebruikt om de pagina's van de douanefout te tonen.

  • De ui.content.sample module bevat de brandde foutenpagina's@ /content/wknd/language-masters/en/errors. Herzie hen in uw lokale milieu van AEMof van AEM as a Cloud Service https://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors.

  • Het bestand wknd.vhost van de module dispatcher bevat:

    code language-none
    # In `wknd.vhost` file:
    
    ...
    
    ## ErrorDocument directive
    ErrorDocument 404 ${404_PAGE}
    ErrorDocument 500 ${500_PAGE}
    ErrorDocument 502 ${500_PAGE}
    ErrorDocument 503 ${500_PAGE}
    ErrorDocument 504 ${500_PAGE}
    
    ## Add Header for 5XX error page response
    <IfModule mod_headers.c>
      ### By default, CDN overrides 5XX error pages. To allow the actual response of the backend to pass through, add the header x-aem-error-pass: true
      Header set x-aem-error-pass "true" "expr=%{REQUEST_STATUS} >= 500 && %{REQUEST_STATUS} < 600"
    </IfModule>
    
    ...
    ## DispatcherPassError directive
    <IfModule disp_apache2.c>
        ...
        DispatcherPassError        1
    </IfModule>
    
    # In `custom.vars` file
    ...
    ## Define the error page paths
    Define 404_PAGE /content/wknd/us/en/errors/404.html
    Define 500_PAGE /content/wknd/us/en/errors/500.html
    ...
    
  • Herzie de pagina's van de douanefout van de plaats WKND door een onjuiste paginanaam of een weg in uw milieu in te gaan, bijvoorbeeld https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.

ACS AEM Commons-Error Page Handler om door AEM bediende foutpagina's aan te passen acs-aem-commons

Om AEM aan te passen diende foutenpagina's over alle de diensttypes van AEM, kunt u de ACS de Handler van de Pagina van de Fout van de Commons AEMoptie gebruiken.

. Voor gedetailleerde geleidelijke instructies, zie hoe tesectie gebruiken.

CDN-foutpagina's om door CDN bediende foutpagina's aan te passen cdn-error-pages

Als u de foutpagina's van de door Adobe beheerde CDN wilt aanpassen, gebruikt u de optie CDN-foutpagina's.

Implementeer CDN-foutpagina's om foutpagina's aan te passen wanneer de door Adobe beheerde CDN het AEM-servicetype (oorspronkelijke server) niet kan bereiken.

IMPORTANT
Adobe-Beheerde CDN kan niet het de diensttype van AEM (oorsprongserver) bereiken is een onwaarschijnlijke gebeurtenis maar de moeite waard van planning voor.

De stappen op hoog niveau voor het implementeren van CDN-foutpagina's zijn:

  • Ontwikkelen van inhoud van een aangepaste foutpagina als toepassing voor één pagina (SPA).
  • Host de statische dossiers die voor de CDN foutenpagina worden vereist in een openbaar toegankelijke plaats.
  • Configureer de CDN-regel (errorPages) en verwijs naar de bovenstaande statische bestanden.
  • Stel de gevormde CDN regel aan het milieu van AEM as a Cloud Service op gebruikend de pijpleiding van Cloud Manager.
  • Test de CDN-foutpagina's.

Overzicht van CDN-foutpagina's

De CDN foutenpagina wordt uitgevoerd als Enige Toepassing van de Pagina (SPA) door Adobe-Beheerde CDN. Het document van HTML van het KUUROORD dat door Adobe-Beheerde CDN wordt geleverd bevat het volledige minimumHTML fragment. De inhoud van de aangepaste foutpagina wordt dynamisch gegenereerd met een JavaScript-bestand. Het JavaScript-bestand moet door de klant worden ontwikkeld en gehost op een openbaar toegankelijke locatie.

Het HTML-fragment dat door de door Adobe beheerde CDN wordt geleverd, heeft de volgende structuur:

<!DOCTYPE html>
<html lang="en">
  <head>

    ...

    <title>{title}</title>
    <link rel="icon" href="{icoUrl}">
    <link rel="stylesheet" href="{cssUrl}">
  </head>
  <body>
    <script src="{jsUrl}"></script>
  </body>
</html>

Het HTML-fragment bevat de volgende plaatsaanduidingen:

  1. jsUrl: De absolute URL van het dossier van JavaScript om de inhoud van de foutenpagina terug te geven door de elementen van HTML dynamisch te creëren.
  2. cssUrl: De absolute URL van het CSS dossier om de inhoud van de foutenpagina te stileren.
  3. icoUrl: Absolute URL van het favicon.

Een aangepaste foutpagina ontwikkelen

Laten we de inhoud van de WKND-foutpagina ontwikkelen als een Single Page Application (SPA).

Voor demodoeleinden, laten wij gebruiken Reageren, echter, kunt u om het even welk kader of bibliotheek van JavaScript gebruiken.

  • Creeer een nieuw React project door het volgende bevel in werking te stellen:

    code language-none
    $ npx create-react-app aem-cdn-error-page
    
  • Open het project in uw favoriete code redacteur en werk de hieronder dossiers bij:

    • src/App.js: het is de hoofdcomponent die de inhoud van de foutpagina rendert.

      code language-javascript
      import logo from "./wknd-logo.png";
      import "./App.css";
      
      function App() {
        return (
          <>
            <div className="App">
              <div className="container">
              <img src={logo} className="App-logo" alt="logo" />
              </div>
            </div>
            <div className="container">
              <div className="error-code">CDN Error Page</div>
              <h1 className="error-message">Ruh-Roh! Page Not Found</h1>
              <p className="error-description">
                We're sorry, we are unable to fetch this page!
              </p>
            </div>
          </>
        );
      }
      
      export default App;
      
    • src/App.css: maak de inhoud van de foutpagina op.

      code language-css
      .App {
        text-align: left;
      }
      
      .App-logo {
        height: 14vmin;
        pointer-events: none;
      }
      
      
      body {
        margin-top: 0;
        padding: 0;
        font-family: Arial, sans-serif;
        background-color: #fff;
        color: #333;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      
      .container {
        text-align: letf;
        padding-top: 10px;
      }
      
      .error-code {
        font-size: 4rem;
        font-weight: bold;
        color: #ff6b6b;
      }
      
      .error-message {
        font-size: 2.5rem;
        margin-bottom: 10px;
      }
      
      .error-description {
        font-size: 1rem;
        margin-bottom: 20px;
      }
      
    • Voeg het bestand wknd-logo.png toe aan de map src . Kopieer het dossierals wknd-logo.png.

    • Voeg het bestand favicon.ico toe aan de map public . Kopieer het dossierals favicon.ico.

    • Verifieer de van het brandmerk CDN van WKND de inhoud van de foutenpagina door het project in werking te stellen:

      code language-none
      $ npm start
      

      Open de browser en navigeer naar http://localhost:3000/ om de inhoud van de CDN-foutpagina te bekijken.

    • Bouw het project om de statische dossiers te produceren:

      code language-none
      $ npm run build
      

      De statische bestanden worden gegenereerd in de map build .

Alternatief, kunt u het {🔗 dossier downloaden 0} aem-cdn-error-page.zip dat de bovengenoemde projectdossiers van React bevat.

Vervolgens host u de bovenstaande statische bestanden op een openbaar toegankelijke locatie.

Statische bestanden van host vereist voor CDN-foutpagina

Laten we de statische bestanden hosten in Azure Blob Storage. Nochtans, kunt u om het even welk statisch dossier gebruiken die de dienst als ontvangen, Vercel, of AWS S3.

  • Volg de officiële Azure Blokopslagdocumentatie om een container te creëren en de statische dossiers te uploaden.

    note important
    IMPORTANT
    Als u andere statische diensten van het dossierontvangen gebruikt, volg hun documentatie om de statische dossiers te ontvangen.
  • Zorg ervoor dat de statische bestanden openbaar toegankelijk zijn. Mijn WKND-demo-specifieke instellingen voor opslagaccounts zijn als volgt:

    • de Naam van de Rekening van de Opslag: aemcdnerrorpageresources
    • Naam van de Container: static-files

    Azure Blob Storage

  • In de container boven static-files worden de onderstaande bestanden uit de map build geüpload:

    • error.js: Het build/static/js/main.<hash>.js dossier wordt anders genoemd aan error.js en openbaar toegankelijk.
    • error.css: Het build/static/css/main.<hash>.css dossier wordt anders genoemd aan error.css en openbaar toegankelijk.
    • favicon.ico: Het build/favicon.ico dossier wordt geupload zoals is en openbaar toegankelijk.

Vervolgens configureert u de CDN-regel (errorPages) en verwijst u naar de bovenstaande statische bestanden.

De CDN-regel configureren

Configureer de CDN-regel errorPages die de bovenstaande statische bestanden gebruikt om de inhoud van de CDN-foutpagina weer te geven.

  1. Open het bestand cdn.yaml vanuit de hoofdmap van uw AEM-project van config . Bijvoorbeeld, het {🔗 dossier 1} van cdn.yaml van het 0} WKND-project.

  2. Voeg de volgende CDN-regel toe aan het cdn.yaml -bestand:

    code language-yaml
    kind: "CDN"
    version: "1"
    metadata:
      envTypes: ["dev", "stage", "prod"]
    data:
      # The CDN Error Page configuration.
      # The error page is displayed when the Adobe-managed CDN is unable to reach the origin server.
      # It is implemented as a Single Page Application (SPA) and WKND branded content must be generated dynamically using the JavaScript file
      errorPages:
        spa:
          title: Adobe AEM CDN Error Page # The title of the error page
          icoUrl: https://aemcdnerrorpageresources.blob.core.windows.net/static-files/favicon.ico # The PUBLIC URL of the favicon
          cssUrl: https://aemcdnerrorpageresources.blob.core.windows.net/static-files/error.css # The PUBLIC URL of the CSS file
          jsUrl: https://aemcdnerrorpageresources.blob.core.windows.net/static-files/error.js # The PUBLIC URL of the JavaScript file
    
  3. Sla de wijzigingen op, wijs deze toe en duw ze door naar de Adobe upstream-opslagplaats.

De CDN-regel implementeren

Tot slot stel de gevormde CDN regel aan het milieu van AEM as a Cloud Service op gebruikend de pijpleiding van Cloud Manager.

  1. In Cloud Manager, navigeer aan de sectie van de Pijpleidingen.

  2. Creeer een nieuwe pijpleiding of selecteer de bestaande pijpleiding die slechts de Config dossiers opstelt. Voor gedetailleerde stappen, zie een config pijpleidingcreëren.

  3. Klik de looppas knoop om de CDN regel op te stellen.

stel CDN Regel op

CDN-foutpagina's testen

Voer de volgende stappen uit om de CDN-foutpagina's te testen:

  • In browser, navigeer aan AEM as a Cloud Service publiceer URL, voeg cdnstatus?code=404 aan URL, bijvoorbeeld, https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404of toegang toe gebruikend douanedomein URL

    WKND - CDN de Pagina van de Fout

  • De volgende codes worden ondersteund: 403, 404, 406, 500 en 503.

  • Controleer het tabblad van het browsernetwerk om te zien hoe de statische bestanden worden geladen van de Azure Blob-opslag. Het HTML-document dat door de door Adobe beheerde CDN wordt geleverd, bevat de minimale inhoud en het JavaScript-bestand maakt dynamisch de inhoud van de pagina met foutmeldingen met branding.

    CDN het Lusje van het Netwerk van de Foutpagina van het Netwerk van de Pagina

Samenvatting

In deze zelfstudie hebt u meer geleerd over standaardfoutpagina's, waar de foutpagina's vandaan komen, en over opties voor het aanpassen van foutpagina's. U hebt geleerd hoe u aangepaste foutpagina's kunt implementeren met de opties ErrorDocument Apache, ACS AEM Commons Error Page Handler en CDN Error Pages .

Aanvullende bronnen

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69