Problem
Der Dispatcher speichert in bestimmten Szenarien einen Ordner anstelle einer Datei für Bilder unter /content/dam.
Zum Beispiel haben Sie diese URLs:
/content/dam/Albin/Untitled.jpg - Originalbild
/content/dam/Albin/Untitled.jpg/jcr:content/renditions/cq5dam.thumbnail.319.319.png - Rendering für 1x Geräte.
Manchmal wird die zweite URL zwischengespeichert, sodass die ursprüngliche Bild-URL nicht zwischengespeichert werden kann.
Umgebung
- AEM 6.0 SP3
- Dispatcher 4.1.11 für Apache 2,4 auf Linux x86 64-bit
Ursache
Das folgende Szenario ist eine häufige Ursache dieses Problems:
Wenn das Bild zuerst von Mobilgeräten aus aufgerufen wird, wird der Ordner Untitled.jpg erstellt, um das aufgerufene Bild zwischenzuspeichern. Die Wiedergabe wird für mobile Geräte angepasst. Zum Beispiel würde diese Datei zwischengespeichert werden /content/dam/Albin/Untitled.jpg/jcr:content/renditions/cq5dam.thumbnail.319.319.png und Untitled.jpg würden als Ordner zwischengespeichert werden, nicht als Datei.
Während auf das Bild von den Desktop-Browsern zugegriffen wird, versucht der Dispatcher, den Ordner Untitled.jpg als Bild zurückzugeben. Zum Beispiel /content/dam/Albin/Untitled.jpg: Das Originalbild wird für Desktop-Browser angepasst. Somit wird die Bildverknüpfung im Browser unterbrochen.
Wenn das Bild zum ersten Mal vom Desktop-Browser aus aufgerufen wird, speichert der Dispatcher alternativ Untitled.jpg als Bild zwischen. Die nachfolgende Anforderung an das wiedergegeben Bild schlägt fehl, da das Bild nicht im Dispatcher-Caché vorhanden ist. Das Bild wird zum Rendern aus der Veröffentlichungsinstanz abgerufen. Wiedergegeben Bilder werden in diesem Szenario nicht als Untitled.jpg zwischengespeichert. Sie werden als Bild erstellt.
Lösung
In diesem Szenario wird empfohlen, auf die Bilder mithilfe von Selektoren zuzugreifen, anstatt direkt auf die Darstellungen in DAM zu verweisen. Dies würde den Zugriff und die Zwischenspeicherung für alle wiedergegeben und ursprünglichen Bilder ermöglichen. Nachfolgend finden Sie eine ausführliche Erklärung.
Wenn zum Beispiel aus das folgende Bild in AEM zugegriffen werden soll: /content/dam/mysite/image.png/_jcr_content/renditions/image.thumbnail.48.48.png
Zur Verwendung des genannten Ansatzes hat die verwendete URL das folgende Format:
Für Darstellungen: /content/dam/mysite/image.png.thumb.48.48.png
Für Originalbilder: /content/dam/mysite/image.png
Sehen Sie sich das Arbeitsbeispiel in der OOTB-AEM-Instanz an:
Originalbild: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg
Darstellung: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg/jcr:content/renditions/cq5dam.thumbnail.48.48.png?cq_ck=1466443646000
Darstellung mit Selektoren: /content/dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c05.jpg.thumb.48.48.png
Darstellung mit unterschiedlicher Höhe und Breite, 140.100: /dam/geometrixx-outdoors/activities/snowboarding/PDP_1_c18.jpg.thumb.100.140.png (Hinweis: Höhe und Breite sind in diesem Fall umgekehrt)
Falls dieses Problem in anderen Szenarien auftritt, können Sie zur Vermeidung von 403-Fehlern, die durch die Ordner verursacht werden, in der von AEM im Apache-HTTP-Server verwendeten Virtualhost-Konfiguration die Direktive DirectorySlash Off hinzufügen. Das würde helfen, eine 403-Fehlermeldung anstelle des ursprünglichen Bildes zu vermeiden. Siehe Diesen Artikel für weitere Informationen.
Bei Ihrem Konto anmelden