Páginas de error personalizadas
Obtenga información sobre cómo implementar páginas de error personalizadas para el sitio web alojado en AEM as a Cloud Service.
En este tutorial, aprenderá lo siguiente:
-
Páginas de error predeterminadas
-
Desde donde se muestran las páginas de error
- AEM Tipo de servicio de: creación, publicación, previsualización
- CDN administrado por Adobe
-
Opciones para personalizar páginas de error
- Directiva Apache ErrorDocument
- AEM ACS Commons - Controlador de página de error
- Páginas de error de CDN
Páginas de error predeterminadas
Revisemos cuándo se muestran las páginas de error, las páginas de error predeterminadas y desde dónde se proporcionan.
Las páginas de error se muestran cuando:
- la página no existe (404)
- no está autorizado para acceder a una página (403)
- error del servidor (500) debido a problemas de código o porque el servidor no está disponible.
AEM as a Cloud Service proporciona páginas de error predeterminadas para los escenarios anteriores. Es una página genérica y no coincide con su marca.
AEM La página de error predeterminada se proporciona desde el tipo de servicio(autor, publicación, vista previa) o desde la CDN administrada por Adobe. Consulte la tabla siguiente para obtener más detalles.
AEM Por ejemplo, las páginas de error predeterminadas servidas desde el tipo de servicio de y la CDN administrada por Adobe son las siguientes:
AEM
AEM Sin embargo, puede personalizar tanto el tipo de servicio como las páginas de error de CDN administradas por Adobe para que coincidan con su marca y proporcionen una mejor experiencia de usuario.
Opciones para personalizar páginas de error
Las siguientes opciones están disponibles para personalizar las páginas de error:
Requisitos previos
AEM En este tutorial, aprenderá a personalizar las páginas de error utilizando la directiva ErrorDocument, el Controlador de páginas de error de ACS Commons y las opciones Páginas de error de CDN. Para seguir este tutorial, necesita lo siguiente:
-
AEM El entorno de desarrollo local o el entorno de AEM as a Cloud Service. La opción Páginas de error de CDN se aplica al entorno de AEM as a Cloud Service.
-
AEM El proyecto WKNDde para personalizar las páginas de error.
Configuración
-
AEM AEM Clone e implemente el proyecto WKND de local siguiendo los pasos a continuación:
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
-
Para el entorno de AEM as a Cloud Service AEM, implemente el proyecto WKND de ejecutando la canalización de pila completa, vea el ejemplo de la canalización que no es de producción.
-
Compruebe que las páginas del sitio WKND se representan correctamente.
AEM Directiva Apache ErrorDocument para personalizar las páginas de error servidas de la errordocument
AEM Para personalizar páginas de error servidas, utilice la directiva ErrorDocument
de Apache.
En AEM as a Cloud Service, la opción de directiva Apache ErrorDocument
solo se aplica a los tipos de servicio de publicación y vista previa. No es aplicable al tipo de servicio de autor, ya que Apache + Dispatcher no forma parte de la arquitectura de implementación.
AEM Revisemos cómo el proyecto WKND utiliza la directiva ErrorDocument
de Apache para mostrar las páginas de error personalizadas.
-
El módulo
ui.content.sample
contiene las páginas de error de marca en/content/wknd/language-masters/en/errors
. AEM Revíselos en su entorno local deo dehttps://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors
de AEM as a Cloud Service. -
El archivo
wknd.vhost
del módulodispatcher
contiene:- La directiva ErrorDocument que señala a las páginas de error anteriores.
- El valor DispatcherPassError está establecido en 1, por lo que Dispatcher permite que Apache gestione todos los errores.
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 ...
-
Revise las páginas de error personalizadas del sitio WKND introduciendo un nombre de página o una ruta incorrectos en su entorno, por ejemplo https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.
AEM AEM Controlador de página de error de ACS Commons-para personalizar las páginas de error servidas acs-aem-commons
AEM AEM AEM Para personalizar las páginas de error proporcionadas en todos los tipos de servicio de la, puede usar la opción Controlador de página de error de ACS Commons.
. Para obtener instrucciones detalladas paso a paso, consulte la sección Cómo usar.
Páginas de error de CDN para personalizar las páginas de error de CDN servidas cdn-error-pages
Para personalizar las páginas de error proporcionadas por la CDN administrada por Adobe, utilice la opción Páginas de error de CDN.
Vamos a implementar páginas de error de CDN para personalizar las páginas de error cuando la CDN administrada por Adobe AEM no puede alcanzar el tipo de servicio (servidor de origen).
Los pasos de alto nivel para implementar páginas de error de CDN son los siguientes:
- SPA Desarrollar contenido de página de error personalizado como aplicación de una sola página ().
- Aloje los archivos estáticos necesarios para la página de error de CDN en una ubicación de acceso público.
- Configure la regla de CDN (errorPages) y haga referencia a los archivos estáticos anteriores.
- Implemente la regla de CDN configurada en el entorno de AEM as a Cloud Service mediante la canalización de Cloud Manager.
- Pruebe las páginas de error de CDN.
Resumen de páginas de error de CDN
SPA La página de error de CDN la implementa como aplicación de una sola página () CDN administrada por el Adobe. SPA El documento de HTML de la que entrega la CDN administrada por el Adobe contiene el mínimo fragmento de HTML. El contenido de la página de error personalizada se genera dinámicamente mediante un archivo JavaScript. El cliente debe desarrollar y alojar el archivo JavaScript en una ubicación de acceso público.
El fragmento de HTML que entrega la CDN administrada por Adobe tiene la siguiente estructura:
<!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>
El fragmento de HTML contiene los siguientes marcadores de posición:
- jsUrl: URL absoluta del archivo JavaScript para procesar el contenido de la página de error creando elementos de HTML de forma dinámica.
- cssUrl: La dirección URL absoluta del archivo CSS para aplicar estilo al contenido de la página de error.
- icoUrl: La dirección URL absoluta del favicon.
Desarrollar una página de error personalizada
SPA Desarrollemos el contenido de página de error de marca específico de WKND como una aplicación de una sola página ().
Para fines de demostración, usemos React; sin embargo, puede usar cualquier módulo o biblioteca de JavaScript.
-
Cree un nuevo proyecto de React ejecutando el siguiente comando:
code language-none $ npx create-react-app aem-cdn-error-page
-
Abra el proyecto en su editor de código favorito y actualice los siguientes archivos:
-
src/App.js
: es el componente principal que procesa el contenido de la página de error.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
: aplicar estilo al contenido de la página de error.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; }
-
Agregar el archivo
wknd-logo.png
a la carpetasrc
. Copie el archivo comowknd-logo.png
. -
Agregar el archivo
favicon.ico
a la carpetapublic
. Copie el archivo comofavicon.ico
. -
Compruebe el contenido de la página de error de CDN con marca WKND ejecutando el proyecto:
code language-none $ npm start
Abra el explorador y vaya a
http://localhost:3000/
para ver el contenido de la página de error de CDN. -
Cree el proyecto para generar los archivos estáticos:
code language-none $ npm run build
Los archivos estáticos se generan en la carpeta
build
.
-
También puede descargar el archivo aem-cdn-error-page.zip que contiene los archivos de proyecto de React anteriores.
A continuación, aloje los archivos estáticos anteriores en una ubicación de acceso público.
Archivos estáticos de host necesarios para la página de error de CDN
Vamos a alojar los archivos estáticos en Azure Blob Storage. Sin embargo, puedes usar cualquier servicio de alojamiento de archivos estáticos como Netlify, Vercel o AWS S3.
-
Siga la documentación oficial de Azure Blob Storage para crear un contenedor y cargar los archivos estáticos.
note important IMPORTANT Si utiliza otros servicios de alojamiento de archivos estáticos, siga su documentación para alojar los archivos estáticos. -
Asegúrese de que los archivos estáticos sean de acceso público. Mi configuración de cuenta de almacenamiento específica de demostración de WKND es la siguiente:
- Nombre de cuenta de almacenamiento:
aemcdnerrorpageresources
- Nombre de contenedor:
static-files
- Nombre de cuenta de almacenamiento:
-
En el contenedor superior
static-files
, se cargan los siguientes archivos de la carpetabuild
:error.js
: se cambió el nombre del archivobuild/static/js/main.<hash>.js
aerror.js
y a accesible públicamente.error.css
: se cambió el nombre del archivobuild/static/css/main.<hash>.css
aerror.css
y a accesible públicamente.favicon.ico
: el archivobuild/favicon.ico
se ha cargado tal cual y es de acceso público.
A continuación, configure la regla CDN (errorPages) y haga referencia a los archivos estáticos anteriores.
Configuración de la regla de CDN
Vamos a configurar la regla de CDN errorPages
que utiliza los archivos estáticos anteriores para procesar el contenido de la página de error de CDN.
-
AEM Abra el archivo
cdn.yaml
desde la carpeta principalconfig
de su proyecto de la. Por ejemplo, el archivo cdn.yaml🔗 del proyecto WKND. -
Agregue la siguiente regla de CDN al archivo
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
-
Guarde, confirme e inserte los cambios en el repositorio de flujo ascendente de Adobe.
Implementación de la regla CDN
Finalmente, implemente la regla de CDN configurada en el entorno de AEM as a Cloud Service mediante la canalización de Cloud Manager.
-
En Cloud Manager, vaya a la sección Canalizaciones.
-
Cree una nueva canalización o seleccione la canalización existente que implemente solamente los archivos Config. Para ver los pasos detallados, consulte Crear una canalización de configuración.
-
Haga clic en el botón Ejecutar para implementar la regla de CDN.
Prueba de las páginas de error de CDN
Para probar las páginas de error de CDN, siga los siguientes pasos:
-
Abra el explorador y vaya a la URL del entorno de Publish; añada
cdnstatus?code=404
a la URL, por ejemplo, https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404, o acceda a través de la URL de dominio personalizado -
Los códigos admitidos son: 403, 404, 406, 500 y 503.
-
Compruebe la pestaña de red del explorador para ver si los archivos estáticos se cargan desde el almacenamiento del blob de Azure. El documento del HTML entregado por la CDN administrada por Adobe contiene el contenido mínimo y el archivo JavaScript crea dinámicamente el contenido de la página de error con marca.
Resumen
En este tutorial, ha aprendido acerca de las páginas de error predeterminadas, desde las que se proporcionan las páginas de error y las opciones para personalizar las páginas de error. Ha aprendido a implementar páginas de error personalizadas utilizando la directiva Apache ErrorDocument
, las opciones ACS AEM Commons Error Page Handler
y CDN Error Pages
.