Páginas de erro personalizadas

Saiba como implementar páginas de erro personalizadas para seu site hospedado pela AEM as a Cloud Service.

Neste tutorial, você aprenderá:

  • Páginas de erro padrão

  • De onde as páginas de erro são servidas

    • Tipo de serviço AEM - autor, publicação, visualização
    • CDN gerenciada por Adobe
  • Opções para personalizar páginas de erro

    • Diretiva Apache ErrorDocument
    • ACS AEM Commons - Error Page Handler
    • Páginas de erro da CDN

Páginas de erro padrão

Vamos analisar quando as páginas de erro são exibidas, as páginas de erro padrão e de onde elas são fornecidas.

Páginas de erro são exibidas quando:

  • a página não existe (404)
  • não autorizado a acessar uma página (403)
  • erro do servidor (500) devido a problemas de código ou o servidor está inacessível.

A AEM as a Cloud Service fornece páginas de erro padrão para os cenários acima. É uma página genérica e não corresponde à sua marca.

A página de erro padrão é servida do tipo de serviço AEM(autor, publicação, visualização) ou da CDN gerenciada por Adobe. Consulte a tabela abaixo para obter mais detalhes.

Página de erro exibida em
Detalhes
Tipo de serviço AEM - autor, publicação, visualização
Quando a solicitação de página é fornecida pelo tipo de serviço AEM e qualquer um dos cenários de erro acima ocorre, a página de erro é fornecida pelo tipo de serviço AEM.
CDN gerenciada por Adobe
Quando o CDN gerenciado por Adobe não pode alcançar o tipo de serviço AEM (servidor de origem), a página de erro é disponibilizada pelo CDN gerenciado por Adobe. É um evento improvável, mas que vale a pena planejar.

Por exemplo, as páginas de erro padrão veiculadas pelo tipo de serviço AEM e pelo CDN gerenciado por Adobe são as seguintes:

Páginas de Erro Padrão do AEM

No entanto, você pode personalizar o tipo de serviço do AEM e as páginas de erro da CDN gerenciadas por Adobe para corresponder à sua marca e fornecer uma melhor experiência ao usuário.

Opções para personalizar páginas de erro

As seguintes opções estão disponíveis para personalizar páginas de erro:

Aplicável a
Nome da opção
Descrição
Tipos de serviço do AEM - publicar e visualizar
Diretiva ErrorDocument
Use a diretiva ErrorDocument no arquivo de configuração do Apache para especificar o caminho para a página de erro personalizada. Aplicável somente aos tipos de serviço AEM: publicar e visualizar.
Tipos de serviço do AEM - autor, publicação, visualização
ACS AEM Commons Error Page Handler
Use o Manipulador de página de erro ACS AEM para personalizar o erro em todos os tipos de serviço AEM.
CDN gerenciada por Adobe
Páginas de erro da CDN
Use as páginas de erro do CDN para personalizar as páginas de erro quando o CDN gerenciado por Adobe não puder alcançar o tipo de serviço AEM (servidor de origem).

Pré-requisitos

Neste tutorial, você aprenderá a personalizar páginas de erro usando a diretiva ErrorDocument, o Manipulador de página de erro AEM ACS e as Páginas de erro CDN. Para seguir este tutorial, você precisa:

Configuração

  • Clonar e implantar o projeto AEM WKND no ambiente de desenvolvimento local do AEM seguindo as etapas abaixo:

    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 o ambiente do AEM as a Cloud Service, implante o projeto WKND AEM executando o pipeline de pilha completa. Consulte o exemplo de pipeline de não produção.

  • Verifique se as páginas do site WKND são renderizadas corretamente.

Diretiva do Apache ErrorDocument para personalizar páginas de erro fornecidas por AEM errordocument

Para personalizar páginas de erro veiculadas por AEM, use a diretiva do Apache ErrorDocument.

No AEM as a Cloud Service, a opção de diretiva do Apache ErrorDocument só é aplicável aos tipos de serviço de publicação e visualização. Não é aplicável ao tipo de serviço do autor, pois o Apache + Dispatcher não faz parte da arquitetura de implantação.

Vamos analisar como o projeto AEM WKND usa a diretiva do Apache ErrorDocument para exibir páginas de erro personalizadas.

  • O módulo ui.content.sample contém as páginas de erro @ /content/wknd/language-masters/en/errors da marca. Revise-as no seu ambiente AEM local ou AEM as a Cloud Service https://author-p<ID>-e<ID>.adobeaemcloud.com/ui#/aem/sites.html/content/wknd/language-masters/en/errors.

  • O arquivo wknd.vhost do módulo dispatcher contém:

    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 as páginas de erro personalizadas do site WKND inserindo um nome de página ou caminho incorreto no seu ambiente, por exemplo https://publish-p105881-e991000.adobeaemcloud.com/us/en/foo/bar.html.

ACS AEM Commons-Error Page Handler para personalizar páginas de erro fornecidas pelo AEM acs-aem-commons

Para personalizar as páginas de erro do AEM em todos os tipos de serviço do AEM, você pode usar a opção Manipulador de página de erro do AcS AEM Commons.

. Para obter instruções detalhadas passo a passo, consulte a seção Como Usar.

Páginas de erro CDN para personalizar páginas de erro fornecidas pela CDN cdn-error-pages

Para personalizar páginas de erro fornecidas pelo CDN gerenciado por Adobe, use a opção de páginas de erro do CDN.

Vamos implementar páginas de erro de CDN para personalizar páginas de erro quando o CDN gerenciado por Adobe não puder alcançar o tipo de serviço AEM (servidor de origem).

IMPORTANT
A CDN gerenciada por Adobe não pode alcançar o tipo de serviço AEM (servidor de origem) é um evento improvável, mas vale a pena planejar para.

As etapas de alto nível para implementar páginas de erro de CDN são:

  • Desenvolva um conteúdo de página de erro personalizado como um Aplicativo de página única (SPA).
  • Hospede os arquivos estáticos necessários para a página de erro do CDN em um local acessível publicamente.
  • Configure a regra CDN (errorPages) e faça referência aos arquivos estáticos acima.
  • Implante a regra CDN configurada no ambiente do AEM as a Cloud Service usando o pipeline do Cloud Manager.
  • Teste as páginas de erro do CDN.

Visão geral das páginas de erro do CDN

A página de erro CDN é implementada como um aplicativo de página única (SPA) pelo CDN gerenciado por Adobe. O documento de HTML do SPA entregue pelo CDN gerenciado por Adobe contém o trecho de HTML mínimo. O conteúdo da página de erro personalizada é gerado dinamicamente usando um arquivo JavaScript. O arquivo JavaScript deve ser desenvolvido e hospedado em um local acessível publicamente pelo cliente.

O snippet de HTML entregue pelo CDN gerenciado por Adobe tem a seguinte estrutura:

<!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>

O trecho HTML contém os seguintes espaços reservados:

  1. jsUrl: o URL absoluto do arquivo JavaScript para renderizar o conteúdo da página de erro, criando elementos HTML dinamicamente.
  2. cssUrl: a URL absoluta do arquivo CSS para o estilo do conteúdo da página de erro.
  3. icoUrl: a URL absoluta do favicon.

Desenvolver uma página de erro personalizada

Vamos desenvolver o conteúdo específico da página de erro de marca WKND como um Aplicativo de página única (SPA).

Para fins de demonstração, vamos usar o React. No entanto, você pode usar qualquer estrutura ou biblioteca do JavaScript.

  • Crie um novo projeto React executando o seguinte comando:

    code language-none
    $ npx create-react-app aem-cdn-error-page
    
  • Abra o projeto em seu editor de código favorito e atualize os arquivos abaixo:

    • src/App.js: é o componente principal que renderiza o conteúdo da página de erro.

      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: Estilo do conteúdo da página de erro.

      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;
      }
      
    • Adicionar o arquivo wknd-logo.png à pasta src. Copie o arquivo como wknd-logo.png.

    • Adicionar o arquivo favicon.ico à pasta public. Copie o arquivo como favicon.ico.

    • Verifique o conteúdo da página de erro CDN com marca WKND executando o projeto:

      code language-none
      $ npm start
      

      Abra o navegador e navegue até http://localhost:3000/ para ver o conteúdo da página de erro CDN.

    • Crie o projeto para gerar os arquivos estáticos:

      code language-none
      $ npm run build
      

      Os arquivos estáticos são gerados na pasta build.

Como alternativa, você pode baixar o arquivo aem-cdn-error-page.zip que contém os arquivos de projeto do React acima.

Em seguida, hospede os arquivos estáticos acima em um local acessível publicamente.

Arquivos estáticos de host necessários para a página de erro CDN

Vamos hospedar os arquivos estáticos no Armazenamento de blobs do Azure. No entanto, você pode usar qualquer serviço de hospedagem de arquivos estáticos, como Netlify, Vercel ou AWS S3.

  • Siga a documentação oficial do Armazenamento Azure Blob para criar um contêiner e carregar os arquivos estáticos.

    note important
    IMPORTANT
    Se você estiver usando outros serviços de hospedagem de arquivos estáticos, siga a documentação deles para hospedar os arquivos estáticos.
  • Verifique se os arquivos estáticos estão acessíveis publicamente. Minhas configurações de conta de armazenamento específicas de demonstração WKND são as seguintes:

    • Nome da Conta de Armazenamento: aemcdnerrorpageresources
    • Nome do Contêiner: static-files

    Armazenamento Azure Blob

  • No contêiner acima static-files, abaixo, os arquivos da pasta build são carregados:

Em seguida, configure a regra CDN (errorPages) e faça referência aos arquivos estáticos acima.

Configurar a regra CDN

Vamos configurar a regra de CDN errorPages que usa os arquivos estáticos acima para renderizar o conteúdo da página de erro de CDN.

  1. Abra o arquivo cdn.yaml na pasta config principal do seu projeto AEM. Por exemplo, o arquivo cdn.yaml🔗 do projeto WKND.

  2. Adicionar a seguinte regra CDN ao arquivo 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
    
  3. Salve, confirme e envie as alterações para o repositório upstream de Adobe.

Implantar a regra CDN

Por fim, implante a regra CDN configurada no ambiente do AEM as a Cloud Service usando o pipeline do Cloud Manager.

  1. Na Cloud Manager, navegue até a seção Pipelines.

  2. Crie um novo pipeline ou selecione o pipeline existente que implanta apenas os arquivos Config. Para obter etapas detalhadas, consulte Criar um pipeline de configuração.

  3. Clique no botão Executar para implantar a regra CDN.

Implantar Regra CDN

Testar as páginas de erro do CDN

Para testar as páginas de erro do CDN, siga as etapas abaixo:

  • Abra o navegador e navegue até a URL de ambiente Publish, anexe o cdnstatus?code=404 à URL, por exemplo, https://publish-p105881-e991000.adobeaemcloud.com/cdnstatus?code=404, ou acesse usando a URL de domínio personalizado

    WKND - Página de Erro da CDN

  • Os códigos compatíveis são: 403, 404, 406, 500 e 503.

  • Verifique a guia de rede do navegador para ver se os arquivos estáticos são carregados do Armazenamento de Blobs do Azure. O documento HTML entregue pelo CDN gerenciado por Adobe contém o conteúdo mínimo básico e o arquivo JavaScript cria dinamicamente o conteúdo da página de erro de marca.

    Guia Rede da Página de Erro da CDN

Resumo

Neste tutorial, você aprendeu sobre as páginas de erro padrão, de onde as páginas de erro são fornecidas, e sobre as opções para personalizar páginas de erro. Você aprendeu a implementar páginas de erro personalizadas usando a diretiva do Apache ErrorDocument, as opções ACS AEM Commons Error Page Handler e CDN Error Pages.

Recursos adicionais

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69