Anpassade felsidor

Lär dig hur du implementerar anpassade felsidor för din värdbaserade AEM as a Cloud Service-webbplats.

I den här självstudiekursen lär du dig:

  • Standardfelsidor

  • Varifrån felsidor hanteras

    • AEM servicetyp - författare, publicera, förhandsgranska
    • Adobe-hanterad CDN
  • Alternativ för att anpassa felsidor

    • Direktivet ErrorDocument Apache
    • ACS AEM Commons - Felsidhanterare
    • CDN-felsidor

Standardfelsidor

Låt oss granska när felsidor visas, standardfelsidor och varifrån de kommer.

Felsidor visas när:

  • sidan finns inte (404)
  • inte behörig att öppna en sida (403)
  • serverfel (500) på grund av kodproblem eller att servern inte kan nås.

AEM as a Cloud Service tillhandahåller standardfelsidor för ovanstående scenarier. Det är en allmän sida som inte matchar ert varumärke.

Standardfelsidan hanteras från AEM-tjänsttypen (författare, publicera, förhandsgranska) eller från Adobe-hanterad CDN. Se tabellen nedan för mer information.

Felsida från
Information
AEM servicetyp - författare, publicera, förhandsgranska
När sidbegäran hanteras av AEM tjänsttyp och något av ovanstående felscenarier inträffar, visas felsidan från AEM tjänsttyp. Standardinställningen är att felsidan 5XX åsidosätts av den Adobe-hanterade CDN-felsidan, såvida inte rubriken x-aem-error-pass: true har angetts.
Adobe-hanterad CDN
När det Adobe-hanterade CDN inte kan nå AEM-tjänsttypen (ursprunglig server) visas felsidan från det Adobe-hanterade CDN:t. Det är en osannolik händelse men det är värt att planera för.
NOTE
I AEM som Cloud Service visar CDN en allmän felsida när ett 5XX-fel tas emot från serverdelen. Om du vill tillåta att det faktiska svaret från backend-servern skickas, måste du lägga till följande rubrik i svaret: x-aem-error-pass: true.
Detta fungerar bara för svar från AEM eller lagret Apache/Dispatcher. Andra oväntade fel från mellanliggande infrastrukturlager visar fortfarande den allmänna felsidan.

Standardfelsidorna som hanteras från AEM och Adobe-hanterade CDN är till exempel följande:

AEM standardfelsidor

Du kan anpassa både AEM tjänstetyp och Adobe-hanterade CDN-felsidor så att de matchar ditt varumärke och ger en bättre användarupplevelse.

Alternativ för att anpassa felsidor

Följande alternativ är tillgängliga för att anpassa felsidor:

Gäller för
Alternativnamn
Beskrivning
AEM servicetyper - publicera och förhandsgranska
Direktivet ErrorDocument
Använd direktivet ErrorDocument i konfigurationsfilen för Apache för att ange sökvägen till den anpassade felsidan. Gäller endast för AEM tjänstetyper - publicera och förhandsgranska.
AEM servicetyper - författare, publicera, förhandsgranska
Felsidhanterare för ACS AEM Commons
Använd ACS AEM Commons felsidhanterare för att anpassa felet för alla AEM-tjänsttyper.
Adobe-hanterad CDN
CDN-felsidor
Använd CDN-felsidorna för att anpassa felsidorna när den Adobe-hanterade CDN inte kan nå AEM tjänsttyp (origin server).

Förutsättningar

I den här självstudiekursen får du lära dig hur du anpassar felsidor med direktivet ErrorDocument, ACS AEM Commons felsidhanterare och alternativen CDN-felsidor . Om du vill följa den här självstudiekursen behöver du:

Konfigurera

  • Klona och distribuera AEM WKND-projektet till din lokala AEM-utvecklingsmiljö genom att följa stegen nedan:

    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
    
  • I AEM as a Cloud Service-miljö ska du distribuera AEM WKND-projektet genom att köra pipelinen i full stack. Se exemplet med icke-produktionspipeline.

  • Kontrollera att WKND-webbplatssidorna återges korrekt.

Direktivet ErrorDocument Apache för att anpassa felsidor som hanteras av AEM errordocument

Om du vill anpassa felsidor som hanteras av AEM använder du direktivet ErrorDocument Apache.

I AEM as a Cloud Service gäller direktivet ErrorDocument Apache endast för tjänsttyperna för publicering och förhandsgranskning. Det gäller inte för tjänstetypen som författare eftersom Apache + Dispatcher inte ingår i distributionsarkitekturen.

Vi ska granska hur AEM WKND -projektet använder Apache-direktivet ErrorDocument för att visa anpassade felsidor.

  • Modulen ui.content.sample innehåller profilerade felsidor @ /content/wknd/language-masters/en/errors. Granska dem i din lokala AEM - eller AEM as a Cloud Service https://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors -miljö.

  • Filen wknd.vhost från modulen dispatcher innehåller:

    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
    ...
    
  • Granska WKND-platsens anpassade felsidor genom att ange ett felaktigt sidnamn eller en felaktig sökväg i miljön, till exempel https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.

ACS AEM Commons-Error Page Handler för att anpassa felsidor som hanteras av AEM acs-aem-commons

Om du vill anpassa felsidor som hanteras av AEM över alla AEM-tjänsttyper kan du använda alternativet ACS AEM Commons Error Page Handler .

. Detaljerade stegvisa instruktioner finns i avsnittet Använda.

CDN-felsidor för att anpassa CDN-hanterade felsidor cdn-error-pages

Om du vill anpassa felsidor som hanteras av det CDN som hanteras av Adobe använder du alternativet CDN-felsidor.

Låt oss implementera CDN-felsidor för att anpassa felsidor när den Adobe-hanterade CDN inte kan nå AEM tjänsttyp (origin-server).

IMPORTANT
CDN som hanteras av Adobe kan inte nå AEM tjänsttyp (origin-server) är en osannolik händelse men bör planeras för.

Steg på hög nivå för att implementera CDN-felsidor är:

  • Utveckla innehåll på en anpassad felsida som ett SPA-program (Single Page Application).
  • Lägg de statiska filer som krävs för CDN-felsidan på en allmänt tillgänglig plats.
  • Konfigurera CDN-regeln (errorPages) och referera till de statiska filerna ovan.
  • Distribuera den konfigurerade CDN-regeln till AEM as a Cloud Service-miljön med Cloud Manager pipeline.
  • Testa CDN-felsidorna.

Översikt över CDN-felsidor

CDN-felsidan implementeras som ett Single Page Application (SPA) av det CDN som hanteras av Adobe. Det SPA HTML-dokument som levereras av det Adobe-hanterade CDN innehåller HTML minsta kodutdrag. Innehållet på den anpassade felsidan genereras dynamiskt med en JavaScript-fil. JavaScript-filen måste utvecklas och lagras av kunden på en allmänt tillgänglig plats.

HTML-fragmentet som levereras av det Adobe-hanterade CDN har följande struktur:

<!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>

HTML-fragmentet innehåller följande platshållare:

  1. jsUrl: Den absoluta URL:en för JavaScript-filen som återger felsidans innehåll genom att skapa HTML-element dynamiskt.
  2. cssUrl: Den absoluta URL:en för CSS-filen som ska formatera felsidans innehåll.
  3. icoUrl: Den absoluta URL:en för favoritikonen.

Utveckla en anpassad felsida

Låt oss utveckla WKND-specifikt varumärkesspecifikt innehåll för felsidor som ett SPA-program (Single Page Application).

I demosyfte kan vi använda Reagera, men du kan använda vilket JavaScript-ramverk eller bibliotek som helst.

  • Skapa ett nytt React-projekt genom att köra följande kommando:

    code language-none
    $ npx create-react-app aem-cdn-error-page
    
  • Öppna projektet i din favoritkodredigerare och uppdatera filerna nedan:

    • src/App.js: Det är huvudkomponenten som återger felsidans innehåll.

      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: Formatera felsidans innehåll.

      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;
      }
      
    • Lägg till filen wknd-logo.png i mappen src. Kopiera filen som wknd-logo.png.

    • Lägg till filen favicon.ico i mappen public. Kopiera filen som favicon.ico.

    • Kontrollera innehållet på WKND-felsidan för CDN genom att köra projektet:

      code language-none
      $ npm start
      

      Öppna webbläsaren och gå till http://localhost:3000/ för att visa innehållet på CDN-felsidan.

    • Skapa projektet för att generera statiska filer:

      code language-none
      $ npm run build
      

      De statiska filerna genereras i mappen build.

Du kan också hämta filen aem-cdn-error-page.zip som innehåller de ovannämnda React-projektfilerna.

Lägg sedan de statiska filerna ovan på en plats som är tillgänglig för alla.

Värdstatiska filer som krävs för CDN-felsidan

Låt oss lagra de statiska filerna i Azure Blob Storage. Du kan dock använda vilken statisk filvärdtjänst som helst, till exempel Netlify, Vercel eller AWS S3.

  • Följ den officiella dokumentationen för Azure Blob Storage för att skapa en behållare och överföra de statiska filerna.

    note important
    IMPORTANT
    Om du använder andra statiska filvärdtjänster följer du dokumentationen till dem för att lagra de statiska filerna.
  • Kontrollera att de statiska filerna är tillgängliga för allmänheten. Mina WKND-demonstrationsspecifika lagringskontoinställningar är följande:

    • Lagringskontonamn: aemcdnerrorpageresources
    • Behållarnamn: static-files

    Azure Blob Storage

  • I behållaren ovanför static-files överförs filer under filerna från mappen build:

Konfigurera sedan CDN-regeln (errorPages) och referera till de statiska filerna ovan.

Konfigurera CDN-regeln

Låt oss konfigurera errorPages CDN-regeln som använder de statiska filerna ovan för att återge innehållet på CDN-felsidan.

  1. Öppna filen cdn.yaml från huvudmappen config i ditt AEM-projekt. Exempel: filen cdn.yaml🔗 för WKND-projektet.

  2. Lägg till följande CDN-regel i filen cdn.yaml:

    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. Spara, implementera och skicka ändringarna till Adobe överordnade databas.

Distribuera CDN-regeln

Distribuera slutligen den konfigurerade CDN-regeln till AEM as a Cloud Service-miljön med Cloud Manager pipeline.

  1. I Cloud Manager går du till avsnittet Pipelines.

  2. Skapa en ny pipeline eller välj den befintliga pipeline som endast distribuerar Config-filerna. Detaljerade steg finns i Skapa en konfigurationspipeline.

  3. Klicka på knappen Kör för att distribuera CDN-regeln.

Distribuera CDN-regel

Testa CDN-felsidorna

Följ stegen nedan för att testa CDN-felsidorna:

  • I webbläsaren navigerar du till AEM as a Cloud Service publicerings-URL:en, lägger till cdnstatus?code=404 i URL:en, till exempel https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404 eller använder anpassad domän-URL

    WKND - CDN-felsida

  • Följande koder stöds: 403, 404, 406, 500 och 503.

  • Kontrollera webbläsarens nätverksflik för att se de statiska filerna läses in från Azure Blob Storage. HTML-dokumentet som levereras av Adobe-hanterat CDN innehåller det minsta tillåtna innehållet och JavaScript-filen skapar dynamiskt det varumärkesanpassade felsidans innehåll.

    CDN Error Page Network Tab

Sammanfattning

I den här självstudiekursen lärde du dig om standardfelsidor, varifrån felsidor hanteras och alternativ för att anpassa felsidor. Du lärde dig att implementera anpassade felsidor med hjälp av direktivet ErrorDocument Apache, alternativen ACS AEM Commons Error Page Handler och CDN Error Pages.

Ytterligare resurser

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