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 mehr über:
-
Standard-Fehlerseiten
-
Von wo aus Fehlerseiten bereitgestellt werden
- AEM-Diensttyp – author, publish, preview
- Von Adobe verwaltetem CDN
-
Optionen zum Anpassen von Fehlerseiten
- ErrorDocument-Apache-Anweisung
- ACS AEM Commons – Fehlerseiten-Handler
- CDN-Fehlerseiten
Standard-Fehlerseiten
Im Folgenden erfahren Sie mehr über die Anzeige von Fehlerseiten, Standard-Fehlerseiten und deren Herkunft.
Fehlerseiten werden angezeigt, wenn:
- eine Seite nicht vorhanden ist (404)
- Sie nicht berechtigt sind, auf eine Seite zuzugreifen (403)
- ein Server-Fehler (500) aufgrund von Code-Problemen oder einem unerreichbaren Server besteht.
AEM as a Cloud Service stellt Standard-Fehlerseiten für die oben genannten Szenarien bereit. Es handelt sich um eine generische Seite, die nicht an Ihre Marke angepasst ist.
Die Standard-Fehlerseite wird vom AEM-Diensttyp (author, publish, preview) oder vom von Adobe verwalteten CDN bereitgestellt. Weitere Informationen finden Sie in der folgenden Tabelle.
Die Standard-Fehlerseiten, die vom AEM-Diensttyp und vom von Adobe verwalteten CDN bereitgestellt werden, sehen beispielsweise wie folgt aus:
Sie können jedoch sowohl die Fehlerseiten des AEM-Diensttyps als auch die des von Adobe verwalteten CDN so anpassen, dass sie zu Ihrer Marke passen und ein besseres Anwendungserlebnis zu bieten.
Optionen zum Anpassen von Fehlerseiten
Die folgenden Optionen sind zum Anpassen von Fehlerseiten verfügbar:
Voraussetzungen
In diesem Tutorial erfahren Sie, wie Sie Fehlerseiten mit der ErrorDocument-Anweisung, dem Fehlerseiten-Handler von ACS AEM Commons und den CDN-Fehlerseiten anpassen. Zum Durchführen dieses Tutorials benötigen Sie Folgendes:
-
Die lokale AEM-Entwicklungsumgebung oder die AEM as a Cloud Service-Umgebung. Die Option CDN-Fehlerseiten ist auf die AEM as a Cloud Service-Umgebung anwendbar.
-
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. Weitere Informationen finden Sie unter dem Beispiel produktionsfremde Pipelines.
-
Überprüfen Sie, ob die Seiten der WKND-Website korrekt gerendert werden.
ErrorDocument-Apache-Anweisung zum Anpassen der von AEM bereitgestellten Fehlerseiten errordocument
Verwenden Sie zum Anpassen der von AEM bereitgestellten Fehlerseiten die Apache-Anweisung ErrorDocument
.
In AEM as a Cloud Service ist die Option der Apache-Anweisung ErrorDocument
nur auf die Diensttypen publish und preview anwendbar. Sie ist nicht für den Diensttyp author anwendbar, da Apache + Dispatcher nicht Teil der Bereitstellungsarchitektur ist.
Im Folgenden erfahren Sie mehr darüber, wie das WKND-Projekt von AEM die Apache-Anweisung ErrorDocument
verwendet, um benutzerdefinierte Fehlerseiten anzuzeigen.
-
Das Modul
ui.content.sample
enthält die Fehlerseiten mit Branding @/content/wknd/language-masters/en/errors
. Überprüfen Sie sie in Ihrer lokalen AEM- oder AEM as a Cloud Service-Umgebunghttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
. -
Die Datei
wknd.vhost
aus dem Moduldispatcher
enthält:- Die ErrorDocument-Anweisung, die auf die oben genannten Fehlerseiten verweist.
- Der Wert DispatcherPassError ist auf 1 festgelegt, sodass der Dispatcher alle Fehler durch Apache handhaben lässt.
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-Website, indem Sie einen falschen Seitennamen oder Pfad in Ihrer Umgebung eingeben, z. B. https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.
Fehlerseiten-Handler von ACS AEM Commons zum Anpassen der von AEM bereitgestellten Fehlerseiten acs-aem-commons
Verwenden Sie den Fehlerseiten-Handler von ACS AEM Commons, um von AEM bereitgestellte Fehlerseiten über alle AEM-Diensttypen hinweg anzupassen.
. Detaillierte Schritt-für-Schritt-Anweisungen finden Sie im Abschnitt zur Verwendung.
CDN-Fehlerseiten zum Anpassen der vom CDN bereitgestellten Fehlerseiten cdn-error-pages
Verwenden Sie die CDN-Fehlerseiten, um die von einem von Adobe verwalteten CDN bereitgestellten Fehlerseiten anzupassen.
Implementieren Sie CDN-Fehlerseiten, um Fehlerseiten anzupassen, wenn das von Adobe verwaltete CDN den AEM-Diensttyp (Herkunfts-Server) nicht erreichen kann.
Die allgemeinen Schritte zur Implementierung von CDN-Fehlerseiten sind:
- Entwickeln Sie den Inhalt einer benutzerdefinierten Fehlerseite als Single-Page-Application (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.
Überblick über CDN-Fehlerseiten
Die CDN-Fehlerseite wird vom von Adobe verwalteten CDN als Single-Page-Application (SPA) implementiert. Das HTML-Dokument für die SPA, das vom von Adobe verwalteten CDN bereitgestellt wird, enthält das Mindest-HTML-Snippet. Der Inhalt der benutzerdefinierten Fehlerseite wird dynamisch mithilfe einer JavaScript-Datei generiert. Die JavaScript-Datei muss auf Kundenseite an einem öffentlich zugänglichen Speicherort entwickelt und gehostet werden.
Das vom von 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 Fehlerseiteninhalt zu gestalten.
- icoUrl: Die absolute URL des Favicons.
Entwickeln einer benutzerdefinierten Fehlerseite
Entwickeln wir den Inhalt der Fehlerseite mit dem Branding von WKND als Single-Page-Application (SPA).
Für Demozwecke wird React verwendet, Sie können jedoch jedes beliebige JavaScript-Framework oder eine 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 Fehlerseiteninhalt 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 Fehlerseiteninhalt.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
dem Ordnersrc
hinzu. Kopieren Sie die Datei alswknd-logo.png
. -
Fügen Sie die Datei
favicon.ico
dem Ordnerpublic
hinzu. Kopieren Sie die Datei alsfavicon.ico
. -
Überprüfen Sie den Inhalt der CDN-Fehlerseite mit dem Branding von WKND, indem Sie das Projekt ausführen:
code language-none $ npm start
Öffnen Sie den Browser und navigieren Sie zu
http://localhost:3000/
, um den CDN-Fehlerseiteninhalt 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.
Hosten der für CDN-Fehlerseiten erforderlichen statischen Dateien
Wir werden die statischen Dateien in Azure Blob Storage hosten. Sie können jedoch auch einen beliebigen Hosting-Dienst für statische Dateien 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 Hosting-Dienste für statische Dateien verwenden, befolgen Sie deren Dokumentation, um die statischen Dateien zu hosten. -
Stellen Sie sicher, dass die statischen Dateien öffentlich zugänglich sind. Die demospezifischen Speicherkontoeinstellungen von WKND lauten wie folgt:
- Name des Speicherkontos:
aemcdnerrorpageresources
- Name des Containers:
static-files
- Name des Speicherkontos:
-
Im obigen Container
static-files
werden die folgenden Dateien aus dem Ordnerbuild
hochgeladen:error.js
: Die Dateibuild/static/js/main.<hash>.js
wird inerror.js
umbenannt und ist öffentlich zugänglich.error.css
: Die Dateibuild/static/css/main.<hash>.css
wird inerror.css
umbenannt und ist öffentlich zugänglich.favicon.ico
: Die Dateibuild/favicon.ico
wird so hochgeladen, wie sie ist, und ist öffentlich zugänglich.
Konfigurieren Sie anschließend die CDN-Regel (errorPages) und lassen Sie sie auf die oben genannten statischen Dateien verweisen.
Konfigurieren der CDN-Regel
Jetzt konfigurieren wir die CDN-Regel errorPages
, die die oben genannten statischen Dateien verwendet, um den CDN-Fehlerseiteninhalt 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
Führen Sie folgende Schritte aus, um die CDN-Fehlerseiten zu testen:
-
Öffnen Sie den Browser und navigieren Sie zur URL der Veröffentlichungsumgebung. Hängen Sie
cdnstatus?code=404
an die URL an, z. B. https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404, oder greifen Sie über die URL der benutzerdefinierten Domain zu. -
Folgende Codes werden unterstützt: 403, 404, 406, 500 und 503.
-
Überprüfen Sie die Registerkarte „Netzwerk“ des Browsers, um zu sehen, wie die statischen Dateien aus dem Azure Blob Storage geladen werden. Das vom von Adobe verwalteten CDN bereitgestellte HTML-Dokument enthält den Mindestinhalt, und die JavaScript-Datei erstellt dynamisch den Inhalt der Fehlerseite mit Branding.
Zusammenfassung
In diesem Tutorial haben Sie mehr über Standard-Fehlerseiten und Optionen zum Anpassen von Fehlerseiten erfahren und wissen jetzt, von wo Fehlerseiten bereitgestellt werden. Sie haben erfahren, wie Sie benutzerdefinierte Fehlerseiten mithilfe der Apache-Anweisung ErrorDocument
sowie der Optionen ACS AEM Commons Error Page Handler
und CDN Error Pages
implementieren.