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 beheerde Adobe
-
Opties om foutpagina's aan te passen
- ErrorDocument Apache, instructie
- ACS AEM Commons - de Handler van de foutenpagina
- 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 AEM diensttype (auteur, publiceert, voorproef) of van Adobe-geleide CDN. Zie de onderstaande tabel voor meer informatie.
Bijvoorbeeld, zijn de standaardfoutenpagina's die van het de diensttype en Adobe-beheerde CDN worden gediend als volgt:
Nochtans, kunt u zowel AEM diensttype 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, ACS AEM de Behandelaar van de Pagina van de Fout van de Commons en de CDN pagina's van de Fout opties. Voor het volgen van deze zelfstudie hebt u het volgende nodig:
-
De lokale AEM ontwikkelomgevingof 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 AEM project WKNDom foutenpagina's aan te passen.
Instellen
-
Klonen en het AEM WKND-project 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 AEM WKND- project 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 serving error pages errordocument
Met de Apache-instructie ErrorDocument
kunt u pagina's met AEM 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.
Laten wij 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 AEMof milieu 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.
code language-none ... # ErrorDocument directive in wknd.vhost file ErrorDocument 404 ${404_PAGE} ErrorDocument 500 ${500_PAGE} ErrorDocument 502 ${500_PAGE} ErrorDocument 503 ${500_PAGE} ErrorDocument 504 ${500_PAGE} ... # DispatcherPassError value in wknd.vhost file <IfModule disp_apache2.c> ... DispatcherPassError 1 </IfModule> # Custom error pages path in custom.vars file 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-Fout de Handler van de Pagina om AEM gediende foutenpagina's aan te passen acs-aem-commons
Om AEM gediende foutenpagina's over aan te passen alle AEM de diensttypes, kunt u de ACS AEM de Handler van de Pagina van de Fout van de Opdrachten van de Opdrachtoptie gebruiken.
. Voor gedetailleerde geleidelijke instructies, zie hoe tesectie gebruiken.
CDN-foutpagina's om door CDN bediende foutpagina's aan te passen cdn-error-pages
Om foutenpagina's aan te passen die door Adobe-geleide CDN worden gediend, gebruik de CDN foutenpagina's optie.
Laten wij CDN foutenpagina's uitvoeren om foutenpagina's aan te passen wanneer Adobe-geleide CDN niet het AEM diensttype (oorsprongserver) kan bereiken.
De stappen op hoog niveau voor het implementeren van CDN-foutpagina's zijn:
- Ontwikkelen van een aangepaste pagina met foutpagina-inhoud als een 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-geleide CDN. Het SPA document van de HTML dat door Adobe-beheerde CDN wordt geleverd bevat het absolute minimum HTML 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 fragment van HTML dat 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 HTML elementen 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-pagina met specifieke foutmeldingen ontwikkelen als een toepassing voor één pagina (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 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:
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
- 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 hoofdmapconfig
van het AEM project. Bijvoorbeeld, het {🔗 dossier 1} van cdn.yaml van het 0} WKND-project. -
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
-
Sla de wijzigingen op, wijs deze toe en duw de wijzigingen naar de Adobe upstream in de 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.
op
CDN-foutpagina's testen
Voer de volgende stappen uit om de CDN-foutpagina's te testen:
-
Open browser en navigeer aan het milieu URL van Publish, voeg
cdnstatus?code=404
aan URL toe, bijvoorbeeld, https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404of toegang 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 document van HTML dat door Adobe-beheerde CDN wordt geleverd bevat de volledige minimuminhoud en het dossier van JavaScript leidt dynamisch tot de branded inhoud van de foutenpagina.
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
.