Pagine di errore personalizzate
Scopri come implementare pagine di errore personalizzate per il sito web ospitato da AEM as a Cloud Service.
In questa esercitazione imparerai:
-
Pagine di errore predefinite
-
Da dove vengono distribuite le pagine di errore
- Tipo di servizio AEM: authoring, pubblicazione, anteprima
- CDN gestito da Adobe
-
Opzioni per personalizzare le pagine di errore
- ErrorDocument Direttiva Apache
- ACS AEM Commons - Gestore pagina di errore
- Pagine errore CDN
Pagine di errore predefinite
Esaminiamo quando vengono visualizzate le pagine di errore, le pagine di errore predefinite e da dove vengono distribuite.
Le pagine di errore vengono visualizzate quando:
- la pagina non esiste (404)
- non autorizzato ad accedere ad una pagina (403)
- errore del server (500) a causa di problemi di codice o server non raggiungibile.
AEM as a Cloud Service fornisce pagine di errore predefinite per gli scenari di cui sopra. Si tratta di una pagina generica che non corrisponde al tuo marchio.
La pagina di errore predefinita viene servita dal tipo di servizio AEM(creazione, pubblicazione, anteprima) o dal CDN gestito da Adobe. Per ulteriori informazioni, consulta la tabella seguente.
Le pagine di errore predefinite servite dal tipo di servizio AEM e dalla rete CDN gestita da Adobe, ad esempio, sono le seguenti:
Tuttavia, puoi personalizzare sia il tipo di servizio AEM che le pagine di errore CDN gestite da Adobe per adattarle al tuo marchio e fornire un'esperienza utente migliore.
Opzioni per personalizzare le pagine di errore
Per personalizzare le pagine di errore sono disponibili le seguenti opzioni:
Prerequisiti
In questa esercitazione imparerai a personalizzare le pagine di errore utilizzando la direttiva ErrorDocument, il Gestore pagine di errore ACS AEM Commons e le opzioni Pagine di errore CDN. Per seguire questa esercitazione, è necessario:
-
ambiente di sviluppo AEM locale o ambiente AEM as a Cloud Service. L'opzione Pagine errore CDN è applicabile all'ambiente AEM as a Cloud Service.
-
Il progetto WKND dell'AEM per personalizzare le pagine di errore.
Configurazione
-
Clona e implementa il progetto WKND dell’AEM nell’ambiente di sviluppo AEM locale seguendo i passaggi seguenti:
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
-
Per l'ambiente AEM as a Cloud Service, distribuire il progetto WKND dell'AEM eseguendo la pipeline full stack. Vedere l'esempio pipeline non di produzione.
-
Verifica che il rendering delle pagine del sito WKND sia corretto.
ErrorDocument Direttiva Apache per personalizzare le pagine di errore servite da AEM errordocument
Per personalizzare le pagine di errore fornite da AEM, utilizzare la direttiva Apache ErrorDocument
.
In AEM as a Cloud Service, l'opzione di direttiva Apache ErrorDocument
è applicabile solo ai tipi di servizio di pubblicazione e anteprima. Non è applicabile al tipo di servizio Author in quanto Apache + Dispatcher non fa parte dell’architettura di distribuzione.
Esaminiamo in che modo il progetto AEM WKND utilizza la direttiva Apache ErrorDocument
per visualizzare pagine di errore personalizzate.
-
Il modulo
ui.content.sample
contiene le pagine di errore @/content/wknd/language-masters/en/errors
con marchio. Esaminali nell'ambiente AEM locale o AEM as a Cloud Servicehttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
. -
Il file
wknd.vhost
del modulodispatcher
contiene:- Direttiva ErrorDocument che punta alle pagine di errore precedenti.
- Il valore DispatcherPassError è impostato su 1, pertanto Dispatcher consente ad Apache di gestire tutti gli errori.
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 ...
-
Rivedi le pagine di errore personalizzate del sito WKND immettendo un nome o un percorso di pagina errato nell'ambiente, ad esempio https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.
Gestore pagine ACS AEM Commons-Error per personalizzare le pagine di errore servite da AEM acs-aem-commons
Per personalizzare le pagine degli errori AEM servite in tutti i tipi di servizi AEM, è possibile utilizzare l'opzione Gestione pagine errori AEM Commons ACS.
. Per istruzioni dettagliate, consulta la sezione Come utilizzare.
Pagine di errore CDN per personalizzare le pagine di errore CDN distribuite cdn-error-pages
Per personalizzare le pagine di errore servite dalla rete CDN gestita dall’Adobe, utilizza l’opzione Pagine di errore CDN.
Implementiamo le pagine di errore CDN per personalizzare le pagine di errore quando la rete CDN gestita da Adobe non può raggiungere il tipo di servizio AEM (server di origine).
I passaggi di alto livello per implementare le pagine di errore CDN sono:
- Sviluppa un contenuto personalizzato per la pagina degli errori come applicazione a pagina singola (SPA).
- Ospita i file statici necessari per la pagina di errore CDN in una posizione accessibile al pubblico.
- Configura la regola CDN (errorPages) e fai riferimento ai file statici di cui sopra.
- Distribuisci la regola CDN configurata nell’ambiente AEM as a Cloud Service utilizzando la pipeline Cloud Manager.
- Verifica le pagine di errore CDN.
Panoramica delle pagine di errore CDN
La pagina di errore CDN viene implementata come applicazione a pagina singola (SPA) dalla rete CDN gestita da Adobe. Il documento SPA HTML consegnato dalla rete CDN gestita dall’Adobe contiene il frammento minimo di HTML. Il contenuto personalizzato della pagina di errore viene generato in modo dinamico utilizzando un file JavaScript. Il file JavaScript deve essere sviluppato e ospitato in una posizione accessibile al pubblico dal cliente.
Il frammento di codice HTML distribuito dalla rete CDN gestita da Adobe ha la seguente struttura:
<!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>
Il frammento di HTML contiene i segnaposto seguenti:
- jsUrl: URL assoluto del file JavaScript per il rendering del contenuto della pagina di errore mediante la creazione dinamica di elementi HTML.
- cssUrl: l'URL assoluto del file CSS per assegnare uno stile al contenuto della pagina di errore.
- icoUrl: URL assoluto del favicon.
Sviluppare una pagina di errore personalizzata
Sviluppiamo il contenuto della pagina di errore con marchio WKND come applicazione a pagina singola (SPA).
A scopo dimostrativo, utilizziamo React, tuttavia puoi utilizzare qualsiasi framework o libreria JavaScript.
-
Creare un nuovo progetto React eseguendo il comando seguente:
code language-none $ npx create-react-app aem-cdn-error-page
-
Apri il progetto nel tuo editor di codice preferito e aggiorna i seguenti file:
-
src/App.js
: è il componente principale che esegue il rendering del contenuto della pagina di errore.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
: applicare lo stile al contenuto della pagina di errore.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; }
-
Aggiungere il file
wknd-logo.png
alla cartellasrc
. Copia il file comewknd-logo.png
. -
Aggiungere il file
favicon.ico
alla cartellapublic
. Copia il file comefavicon.ico
. -
Verifica il contenuto della pagina di errore CDN con marchio WKND eseguendo il progetto:
code language-none $ npm start
Apri il browser e passa a
http://localhost:3000/
per visualizzare il contenuto della pagina di errore CDN. -
Crea il progetto per generare i file statici:
code language-none $ npm run build
I file statici vengono generati nella cartella
build
.
-
In alternativa, puoi scaricare il file aem-cdn-error-page.zip contenente i file di progetto React precedenti.
Quindi, ospitare i file statici di cui sopra in una posizione accessibile al pubblico.
Pagina Host: file statici necessari per errore CDN
Ospitiamo i file statici nell’archiviazione BLOB di Azure. Tuttavia, puoi utilizzare qualsiasi servizio di hosting di file statico come Netlify, Vercel o AWS S3.
-
Segui la documentazione ufficiale di Azure Blob Storage per creare un contenitore e caricare i file statici.
note important IMPORTANT Se utilizzi altri servizi di hosting di file statici, segui la relativa documentazione per ospitare i file statici. -
Assicurati che i file statici siano accessibili al pubblico. Le impostazioni dell’account di archiviazione specifico per la demo WKND sono le seguenti:
- Nome account di archiviazione:
aemcdnerrorpageresources
- Nome contenitore:
static-files
- Nome account di archiviazione:
-
Nel contenitore superiore a
static-files
, vengono caricati i file di seguito della cartellabuild
:error.js
: il filebuild/static/js/main.<hash>.js
è stato rinominato inerror.js
e pubblicamente accessibile.error.css
: il filebuild/static/css/main.<hash>.css
è stato rinominato inerror.css
e pubblicamente accessibile.favicon.ico
: il filebuild/favicon.ico
è stato caricato così com'è e accessibile pubblicamente.
Quindi, configura la regola CDN (errorPages) e fai riferimento ai file statici di cui sopra.
Configurare la regola CDN
Configuriamo la regola CDN errorPages
che utilizza i file statici di cui sopra per eseguire il rendering del contenuto della pagina di errore CDN.
-
Aprire il file
cdn.yaml
dalla cartella principaleconfig
del progetto AEM. Ad esempio, il file cdn.yaml🔗 del progetto WKND. -
Aggiungi la seguente regola CDN al file
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
-
Salva, conferma e invia le modifiche all’archivio Adobe a monte.
Distribuire la regola CDN
Infine, distribuisci la regola CDN configurata nell’ambiente AEM as a Cloud Service utilizzando la pipeline Cloud Manager.
-
In Cloud Manager, passa alla sezione Pipeline.
-
Crea una nuova pipeline o seleziona la pipeline esistente che distribuisce solo i file Config. Per i passaggi dettagliati, vedere Creare una pipeline di configurazione.
-
Fai clic sul pulsante Esegui per distribuire la regola CDN.
Verifica le pagine di errore CDN
Per verificare le pagine di errore CDN, effettua le seguenti operazioni:
-
Apri il browser e passa all'URL dell'ambiente Publish, aggiungi
cdnstatus?code=404
all'URL, ad esempio https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404, oppure accedi utilizzando l'URL di dominio personalizzato -
I codici supportati sono: 403, 404, 406, 500 e 503.
-
Verifica la scheda di rete del browser per visualizzare i file statici caricati dall’archiviazione BLOB di Azure. Il documento HTML distribuito dalla rete CDN gestita da Adobe contiene il contenuto minimo richiesto e il file JavaScript crea in modo dinamico il contenuto della pagina di errore con marchio.
Riepilogo
In questo tutorial hai imparato quali sono le pagine di errore predefinite, da dove vengono distribuite le pagine di errore, e le opzioni per personalizzare le pagine di errore. Hai imparato a implementare pagine di errore personalizzate utilizzando le opzioni ACS AEM Commons Error Page Handler
, ErrorDocument
Apache e CDN Error Pages
.