Benutzerdefinierte Fehlerseiten
Erfahren Sie, wie Sie benutzerdefinierte Fehlerseiten für Ihre von AEM as a Cloud Service gehostete Website implementieren.
In diesem Tutorial erfahren Sie:
-
Standardmäßige Fehlerseiten
-
Von wo aus werden Fehlerseiten bereitgestellt?
- AEM Service Type - author, publish, preview
- Adobe-verwaltetes CDN
-
Optionen zum Anpassen von Fehlerseiten
- ErrorDocument Apache-Direktive
- ACS AEM Commons - Fehler-Seiten-Handler
- CDN-Fehlerseiten
Standardmäßige Fehlerseiten
Im Folgenden werden die Anzeige von Fehlerseiten, standardmäßigen Fehlerseiten und deren Herkunft beschrieben.
Fehlerseiten werden angezeigt, wenn:
- Seite ist nicht vorhanden (404)
- nicht berechtigt, auf eine Seite zuzugreifen (403)
- Serverfehler (500) aufgrund von Code-Problemen oder Server ist nicht erreichbar.
AEM as a Cloud Service stellt standardmäßige Fehlerseiten für die oben genannten Szenarien bereit. Es handelt sich um eine generische Seite, die nicht mit Ihrer Marke übereinstimmt.
Die standardmäßige Fehlerseite wird vom Typ AEM Service Type (author, publish, preview) oder vom vom Adobe verwalteten CDN bereitgestellt. Weitere Informationen finden Sie in der unten stehenden Tabelle.
Die standardmäßigen Fehlerseiten, die vom AEM-Diensttyp und vom Adobe-verwalteten CDN bereitgestellt werden, lauten beispielsweise wie folgt:
Sie können jedoch sowohl AEM Diensttyp als auch die von Adobe verwalteten CDN-Fehlerseiten anpassen, um Ihrer Marke zu entsprechen und ein besseres Benutzererlebnis zu bieten.
Optionen zum Anpassen von Fehlerseiten
Die folgenden Optionen sind verfügbar, um Fehlerseiten anzupassen:
Voraussetzungen
In diesem Tutorial erfahren Sie, wie Sie Fehlerseiten mit der Anweisung ErrorDocument, dem Fehler-Seiten-Handler ACS AEM Commons und den Optionen CDN Error Pages anpassen. Zum Durchführen dieses Tutorials benötigen Sie Folgendes:
-
Die Umgebung AEM Entwicklungsumgebung oder AEM as a Cloud Service . Die Option CDN-Fehlerseiten gilt für die AEM as a Cloud Service-Umgebung.
-
Das AEM WKND-Projekt zum Anpassen von Fehlerseiten.
Setup
-
Klonen Sie das AEM WKND-Projekt und stellen Sie es in Ihrer lokalen AEM-Entwicklungsumgebung bereit, indem Sie die folgenden Schritte ausführen:
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
-
Stellen Sie für die AEM as a Cloud Service-Umgebung das AEM WKND-Projekt bereit, indem Sie die Full-Stack-Pipeline ausführen. Siehe Beispiel für die Nicht-Produktions-Pipeline 🔗 .
-
Überprüfen Sie, ob die WKND-Site-Seiten korrekt dargestellt werden.
ErrorDocument Apache-Direktive zum Anpassen AEM bereitgestellten Fehlerseiten errordocument
Verwenden Sie zum Anpassen AEM bereitgestellten Fehlerseiten die Apache-Anweisung ErrorDocument
.
In AEM as a Cloud Service gilt die Option ErrorDocument
Apache-Direktive nur für die Typen der Veröffentlichungs- und Vorschaudienste. Dies gilt nicht für den Autorendiensttyp, da Apache + Dispatcher nicht Teil der Bereitstellungsarchitektur ist.
Sehen wir uns an, wie das Projekt AEM WKND die Apache-Anweisung ErrorDocument
verwendet, um benutzerdefinierte Fehlerseiten anzuzeigen.
-
Das Modul
ui.content.sample
enthält die Fehlerseiten mit der Marke@/content/wknd/language-masters/en/errors
. Überprüfen Sie sie in Ihrer lokalen AEM oder AEM as a Cloud Servicehttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
-Umgebung. -
Die Datei
wknd.vhost
aus dem Moduldispatcher
enthält:- Die ErrorDocument -Direktive, die auf die oben genannten Fehlerseiten verweist.
- Der Wert DispatcherPassError ist auf 1 gesetzt, sodass Apache alle Fehler handhaben kann.
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 ...
-
Überprüfen Sie die benutzerdefinierten Fehlerseiten der WKND-Site, indem Sie einen falschen Seitennamen oder Pfad in Ihrer Umgebung eingeben, z. B. https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.
ACS AEM Commons-Error Page Handler zum Anpassen AEM bereitgestellten Fehlerseiten acs-aem-commons
Um AEM bereitgestellte Fehlerseiten über alle AEM Diensttypen hinweg anzupassen, können Sie die Option ACS AEM Commons Error Page Handler verwenden.
. Detaillierte schrittweise Anweisungen finden Sie im Abschnitt Verwendung von.
CDN-Fehlerseiten zum Anpassen von CDN-bereitgestellten Fehlerseiten cdn-error-pages
Verwenden Sie die Option CDN-Fehlerseiten , um vom Adobe verwaltetes CDN bereitgestellte Fehlerseiten anzupassen.
Implementieren wir CDN-Fehlerseiten, um Fehlerseiten anzupassen, wenn das von Adobe verwaltete CDN den AEM-Diensttyp (Herkunftsserver) nicht erreichen kann.
Die allgemeinen Schritte zur Implementierung von CDN-Fehlerseiten sind:
- Entwickeln Sie einen benutzerdefinierten Fehlerseiteninhalt als Einzelseiten-App (SPA).
- Hosten Sie die für die CDN-Fehlerseite erforderlichen statischen Dateien an einem öffentlich zugänglichen Speicherort.
- Konfigurieren Sie die CDN-Regel (errorPages) und verweisen Sie auf die oben genannten statischen Dateien.
- Stellen Sie die konfigurierte CDN-Regel mithilfe der Cloud Manager-Pipeline in der AEM as a Cloud Service-Umgebung bereit.
- Testen Sie die CDN-Fehlerseiten.
Übersicht über CDN-Fehlerseiten
Die CDN-Fehlerseite wird vom Adobe-verwalteten CDN als Einzelseiten-App (SPA) implementiert. Das SPA HTML-Dokument, das vom Adobe-verwalteten CDN bereitgestellt wird, enthält das absolute Minimum an HTML-Snippet. Der benutzerdefinierte Fehlerseiteninhalt wird dynamisch mithilfe einer JavaScript-Datei generiert. Die JavaScript-Datei muss vom Kunden an einem öffentlich zugänglichen Ort entwickelt und gehostet werden.
Das vom Adobe-verwalteten CDN bereitgestellte HTML-Snippet weist die folgende Struktur auf:
<!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>
Das HTML-Snippet enthält die folgenden Platzhalter:
- jsUrl: Die absolute URL der JavaScript-Datei zum Rendern des Fehlerseiteninhalts durch dynamisches Erstellen von HTML-Elementen.
- cssUrl: Die absolute URL der CSS-Datei, um den Inhalt der Fehlerseite zu gestalten.
- icoUrl: Die absolute URL des Favicons.
Entwickeln einer benutzerdefinierten Fehlerseite
Entwickeln wir den Inhalt der WKND-spezifischen Fehlerseite als Einzelseitenanwendung (SPA).
Verwenden wir für Demozwecke React, Sie können jedoch jedes beliebige JavaScript-Framework oder jede beliebige Bibliothek verwenden.
-
Erstellen Sie ein neues React-Projekt, indem Sie den folgenden Befehl ausführen:
code language-none $ npx create-react-app aem-cdn-error-page
-
Öffnen Sie das Projekt in Ihrem bevorzugten Code-Editor und aktualisieren Sie die folgenden Dateien:
-
src/App.js
: Die Hauptkomponente, die den Inhalt der Fehlerseite 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
: Formatieren Sie den Inhalt der Fehlerseite.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; }
-
Fügen Sie die Datei
wknd-logo.png
zum Ordnersrc
hinzu. Kopieren Sie die Datei alswknd-logo.png
. -
Fügen Sie die Datei
favicon.ico
zum Ordnerpublic
hinzu. Kopieren Sie die Datei alsfavicon.ico
. -
Überprüfen Sie den Inhalt der WKND-gebrandeten CDN-Fehlerseite, indem Sie das Projekt ausführen:
code language-none $ npm start
Öffnen Sie den Browser und navigieren Sie zu "
http://localhost:3000/
", um den Inhalt der CDN-Fehlerseite anzuzeigen. -
Erstellen Sie das Projekt, um die statischen Dateien zu generieren:
code language-none $ npm run build
Die statischen Dateien werden im Ordner
build
generiert.
-
Alternativ können Sie die Datei "aem-cdn-error-page.zip"mit den oben genannten React-Projektdateien herunterladen.
Als Nächstes hosten Sie die oben genannten statischen Dateien an einem öffentlich zugänglichen Speicherort.
Host static files required for CDN error page
Hosten wir die statischen Dateien in Azure Blob Storage. Sie können jedoch jeden statischen Dateihostdienst wie Netlify, Vercel oder AWS S3 verwenden.
-
Befolgen Sie die offizielle Dokumentation zu Azure Blob Storage , um einen Container zu erstellen und die statischen Dateien hochzuladen.
note important IMPORTANT Wenn Sie andere statische Dateihostingdienste verwenden, befolgen Sie deren Dokumentation, um die statischen Dateien zu hosten. -
Stellen Sie sicher, dass die statischen Dateien öffentlich zugänglich sind. Meine WKND-Demo-spezifischen Speicherkontoeinstellungen lauten wie folgt:
- Name des Speicherkontos:
aemcdnerrorpageresources
- Container Name:
static-files
- Name des Speicherkontos:
-
Im obigen
static-files
-Container werden die folgenden Dateien aus dem Ordnerbuild
hochgeladen:error.js
: Die Dateibuild/static/js/main.<hash>.js
wird inerror.js
und öffentlich zugänglich umbenannt.error.css
: Die Dateibuild/static/css/main.<hash>.css
wird inerror.css
und öffentlich zugänglich umbenannt.favicon.ico
: Diebuild/favicon.ico
-Datei wird wie besehen hochgeladen und öffentlich zugänglich.
Konfigurieren Sie anschließend die CDN-Regel (errorPages) und verweisen Sie auf die oben genannten statischen Dateien.
Konfigurieren der CDN-Regel
Konfigurieren wir die errorPages
-CDN-Regel, die die oben genannten statischen Dateien verwendet, um den Inhalt der CDN-Fehlerseite zu rendern.
-
Öffnen Sie die Datei
cdn.yaml
im Hauptordnerconfig
Ihres AEM-Projekts. Beispielsweise die Datei cdn.yaml des WKND-Projekts. -
Fügen Sie der Datei
cdn.yaml
die folgende CDN-Regel hinzu: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
-
Speichern, übertragen und pushen Sie die Änderungen in das vorgelagerte Adobe-Repository.
Bereitstellen der CDN-Regel
Stellen Sie schließlich die konfigurierte CDN-Regel mithilfe der Cloud Manager-Pipeline in der AEM as a Cloud Service-Umgebung bereit.
-
Navigieren Sie in Cloud Manager zum Abschnitt Pipelines .
-
Erstellen Sie eine neue Pipeline oder wählen Sie die vorhandene Pipeline aus, die nur die Config-Dateien bereitstellt. Ausführliche Anweisungen finden Sie unter Erstellen einer Konfigurations-Pipeline.
-
Klicken Sie auf die Schaltfläche Ausführen , um die CDN-Regel bereitzustellen.
Testen der CDN-Fehlerseiten
Gehen Sie wie folgt vor, um die CDN-Fehlerseiten zu testen:
-
Öffnen Sie den Browser und navigieren Sie zur Publish-Umgebungs-URL, hängen Sie die "
cdnstatus?code=404
"-URL an, z. B. "https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404", oder greifen Sie über die URL der benutzerdefinierten Domäne "URL"auf -
Folgende Codes werden unterstützt: 403, 404, 406, 500 und 503.
-
Überprüfen Sie die Registerkarte des Browser-Netzwerks , um zu sehen, wie die statischen Dateien aus dem Azure Blob Storage geladen werden. Das vom Adobe verwaltete CDN bereitgestellte HTML-Dokument enthält den Mindestinhalt, und die JavaScript-Datei erstellt dynamisch den Inhalt der Fehlerseite.
Registerkarte "Netzwerk"für CDN-Fehlerseite
Zusammenfassung
In diesem Tutorial haben Sie mehr über standardmäßige Fehlerseiten, von denen Fehlerseiten bereitgestellt werden, und Optionen zum Anpassen von Fehlerseiten erfahren. Sie haben gelernt, wie Sie benutzerdefinierte Fehlerseiten mithilfe der Apache-Direktive ErrorDocument
, der Optionen ACS AEM Commons Error Page Handler
und CDN Error Pages
implementieren.