Problema

Dispatcher almacena en caché una carpeta en lugar de un archivo para imágenes en /contenido/dam en ciertos escenarios.

Por ejemplo, tiene estas URL:
/content/dam/Albin/Untitled.jpg - Imagen original
/content/dam/Albin/Untitled.jpg/jcr:content/renditions/cq5dam.thumbnail.319.319.png - Rendición para dispositivos 1x.

A veces, la segunda URL se almacena en caché, por lo que la URL de la imagen original no se puede almacenar en caché.

Entorno

  • AEM 6.0 SP3
  • Dispatcher 4.1.11 para Apache 2.4 en Linux x86 64 bits

Causa

El siguiente escenario es una causa común de este problema:

Si se accede primero a la imagen desde los dispositivos móviles, se crea la carpeta Untitled.jpg para almacenar en caché la imagen de variantes de representación.  Las imágenes de renderizado se adaptan a los dispositivos móviles.   Por ejemplo, este archivo se almacenaría en caché en /content/dam/Albin/Untitled.jpg/jcr:content/renditions/cq5dam.thumbnail.319.319.png y Untitled.jpg se almacenaría en caché como una carpeta, no como un archivo.

Mientras se accede a la imagen desde los navegadores de escritorio, Dispatcher intenta devolver la carpeta Untitled.jpg como una imagen.  Por ejemplo, /content/dam/Albin/Untitled.jpg, la imagen original es compatible con los navegadores de escritorio.  Por lo tanto, el enlace de imagen está roto en el navegador.

Alternativamente, si se accede primero a la imagen desde el navegador de escritorio, Dispatcher almacena en la caché Untitled.jpg como una imagen. La solicitud posterior a la imagen de variante de representación falla porque la imagen no existe en la caché de Dispatcher.  La imagen se recupera de la instancia de publicación para su renderizado.  Las imágenes de renderización no se almacenan en caché en este escenario como Untitled.jpg y se crean como una imagen.

Resolución

En este caso, se sugiere acceder a las imágenes utilizando selectores, en lugar de hacer referencia directa a las variantes de representación en DAM. Esto permitiría el acceso y el almacenamiento en caché para todos, las variantes de representación y también la imagen original. A continuación se ofrece una explicación detallada de la misma.

Por ejemplo, si la imagen en AEM a la que se va a acceder es: /content/dam/mysite/image.png/_jcr_content/renditions/image.thumbnail.48.48.png

Para utilizar el enfoque mencionado, la URL utilizada es del formato que se muestra a continuación:

Para las variantes de presentación: /content/dam/mysite/image.png.png.thumb.48.48.png
Para la imagen original: /content/dam/mysite/image.png

Consulte el ejemplo en funcionamiento en la instancia de OOTB AEM:

Imagen original: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg
Variante de presentación: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg/jcr:content/renditions/cq5dam.thumbnail.48.48.png?cq_ck=1466443646000
Variante de presentación usando selectores: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg.thumb.48.48.png
Variante de presentación con altura y ancho diferentes, 140.100: /dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c18.jpg.thumb.100.140.png (Nota: La altura y la anchura se invierten en este caso)

Nota:

En caso de que este problema se encuentre en otros escenarios, entonces, para evitar 403 errores causados por las carpetas, puede añadir la directiva DirectorySlash Off en la configuración del host virtual utilizado por AEM en el servidor HTTP Apache.  Esto ayudaría a evitar servir una respuesta 403 en lugar de la imagen original.  Consulte este artículo si desea obtener más información.

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea