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 - författare, publicera, förhandsgranska
- CDN som hanteras av Adobe
-
Alternativ för att anpassa felsidor
- Direktivet ErrorDocument Apache
- ACS AEM Commands - 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änsttyp (författare, publicera, förhandsgranska) eller från Adobe-hanterat CDN. Se tabellen nedan för mer information.
Standardfelsidorna som hanteras från AEM och Adobe-hanterad CDN är till exempel följande:
Du kan dock anpassa både AEM 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:
Förutsättningar
I den här självstudiekursen får du lära dig hur du anpassar felsidor med direktivet ErrorDocument , med alternativen ACS AEM Commons Error Page Handler och CDN Error Pages . Om du vill följa den här självstudiekursen behöver du:
-
Den lokala AEM utvecklingsmiljön eller AEM as a Cloud Service-miljön. Alternativet CDN-felsidor kan användas i AEM as a Cloud Service-miljön.
-
AEM WKND-projektet för att anpassa felsidor.
Konfigurera
-
Klona och distribuera AEM WKND-projektet till den lokala AEM utvecklingsmiljön 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ö distribuerar du AEM WKND-projektet genom att köra pipelinen för fullständig stack, se exemplet med icke-produktionspipeline.
-
Kontrollera att WKND-webbplatssidorna återges korrekt.
Direktivet ErrorDocument Apache för att anpassa AEM hanterade felsidor errordocument
Använd direktivet ErrorDocument
Apache om du vill anpassa AEM hanterade felsidor.
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 Servicehttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
-miljö. -
Filen
wknd.vhost
från modulendispatcher
innehåller:- Direktivet ErrorDocument som pekar på de ovanstående felsidorna.
- Värdet DispatcherPassError är satt till 1, så att Apache kan hantera alla fel.
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 ...
-
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 AEM hanterade felsidor acs-aem-commons
Du kan använda alternativet ACS AEM Commons Error Page Handler om du vill anpassa AEM hanterade felsidor för alla AEM tjänsttyper.
. 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 Adobe-hanterade CDN-nätverket 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 (origin server).
Steg på hög nivå för att implementera CDN-felsidor är:
- Utveckla ett anpassat felsidinnehåll som ett enkelsidigt program (SPA).
- 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-program (SPA) av det Adobe-hanterade CDN. Det SPA HTML-dokumentet som levereras av det Adobe-hanterade CDN innehåller det minsta HTML-fragmentet. 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.
Det HTML-fragment 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:
- jsUrl: Den absoluta URL:en för JavaScript-filen som återger felsidans innehåll genom att skapa HTML-element dynamiskt.
- cssUrl: Den absoluta URL:en för CSS-filen som ska formatera felsidans innehåll.
- icoUrl: Den absoluta URL:en för favoritikonen.
Utveckla en anpassad felsida
Låt oss utveckla WKND-specifikt varumärkesspecifikt felsidinnehåll som ett Single Page Application (SPA).
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 mappensrc
. Kopiera filen somwknd-logo.png
. -
Lägg till filen
favicon.ico
i mappenpublic
. Kopiera filen somfavicon.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
- Lagringskontonamn:
-
I behållaren ovanför
static-files
överförs filer under filerna från mappenbuild
:error.js
:build/static/js/main.<hash>.js
-filen har bytt namn tillerror.js
och offentligt tillgänglig.error.css
:build/static/css/main.<hash>.css
-filen har bytt namn tillerror.css
och offentligt tillgänglig.favicon.ico
: Filenbuild/favicon.ico
överförs som den är och är tillgänglig för alla.
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.
-
Öppna filen
cdn.yaml
från huvudmappenconfig
i AEM. Exempel: filen cdn.yaml🔗 för WKND-projektet. -
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
-
Spara, implementera och skicka ändringarna till databasen i det övre Adobe.
Distribuera CDN-regeln
Distribuera slutligen den konfigurerade CDN-regeln till AEM as a Cloud Service-miljön med Cloud Manager pipeline.
-
I Cloud Manager går du till avsnittet Pipelines.
-
Skapa en ny pipeline eller välj den befintliga pipeline som endast distribuerar Config-filerna. Detaljerade steg finns i Skapa en konfigurationspipeline.
-
Klicka på knappen Kör för att distribuera CDN-regeln.
Testa CDN-felsidorna
Följ stegen nedan för att testa CDN-felsidorna:
-
Öppna webbläsaren och gå till Publish-URL:en, lägg till
cdnstatus?code=404
i URL:en, till exempel https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404 eller använd URL:en för den anpassade domänen -
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. Det HTML-dokument som levereras av det Adobe-hanterade CDN innehåller det minsta tillåtna innehållet, och JavaScript-filen skapar dynamiskt det varumärkesanpassade felsidans innehåll.
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
.