Aangepaste foutpagina's
- Onderwerpen:
- Merkervaringen
- Configureren
- Ontwikkelen
Gemaakt voor:
- Beginner
- tussenpersoon
- Ontwikkelaar
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.
x-aem-error-pass: true
is ingesteld.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:
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:
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:
-
De lokale ontwikkelomgeving van AEMof het milieu van AEM as a Cloud Service. De CDN optie van de Pagina's van de Fout is toepasselijk op het milieu van AEM as a Cloud Service.
-
Het project van AEM WKNDom foutenpagina's aan te passen.
Instellen
-
U kunt het AEM WKND-project klonen en implementeren in uw lokale AEM-ontwikkelomgeving door de onderstaande stappen uit te voeren:
# 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
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 Servicehttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
. -
Het bestand
wknd.vhost
van de moduledispatcher
bevat:- De richtlijn ErrorDocumentdie aan de bovengenoemde foutenpagina'sricht.
- De 🔗 waarde 0} DispatcherPassError wordt geplaatst aan 1 zodat Dispatcher laat Apache alle fouten behandelen.
# 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
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
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.
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:
- 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.
- cssUrl: De absolute URL van het CSS dossier om de inhoud van de foutenpagina te stileren.
- 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:
$ 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.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..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 mapsrc
. Kopieer het dossieralswknd-logo.png
. -
Voeg het bestand
favicon.ico
toe aan de mappublic
. Kopieer het dossieralsfavicon.ico
. -
Verifieer de van het brandmerk CDN van WKND de inhoud van de foutenpagina door het project in werking te stellen:
$ 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:
$ 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.
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
- de Naam van de Rekening van de Opslag:
-
In de container boven
static-files
worden de onderstaande bestanden uit de mapbuild
geüpload:error.js
: Hetbuild/static/js/main.<hash>.js
dossier wordt anders genoemd aanerror.js
en openbaar toegankelijk.error.css
: Hetbuild/static/css/main.<hash>.css
dossier wordt anders genoemd aanerror.css
en openbaar toegankelijk.favicon.ico
: Hetbuild/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.
-
Open het bestand
cdn.yaml
vanuit de hoofdmap van uw AEM-project vanconfig
. Bijvoorbeeld, het {🔗 dossier 1} van cdn.yaml van het 0} WKND-project. -
Voeg de volgende CDN-regel toe aan het
cdn.yaml
-bestand: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
-
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.
-
In Cloud Manager, navigeer aan de sectie van de Pijpleidingen.
-
Creeer een nieuwe pijpleiding of selecteer de bestaande pijpleiding die slechts de Config dossiers opstelt. Voor gedetailleerde stappen, zie een config pijpleidingcreëren.
-
Klik de looppas knoop om de CDN regel op te stellen.
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 -
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.
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
.