AEM: PDF-Links in der Textkomponente werden immer aufgrund des Content-Disposition-Headers heruntergeladen
In diesem Artikel wird erläutert, warum PDF-Links, die in der Textkomponente von Adobe Experience Manager (AEM) erstellt wurden, immer Trigger-Downloads durchführen können, anstatt sie auf einer neuen Registerkarte zu öffnen. Außerdem werden Schritte zur Behebung des Problems beschrieben.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM), alle Versionen
Problem/Symptome
- Wenn ein PDF-Link in der vordefinierten AEM-Textkomponente (Rich-Text-Editor) erstellt wird, wird durch Klicken auf den Link immer der PDF heruntergeladen, unabhängig davon, ob der Link auf einer neuen Registerkarte oder auf derselben Registerkarte geöffnet werden soll.
- Der Antwort-Header des Browsers für die PDF enthält
content-disposition: attachment. - Dieses Verhalten bleibt auch bestehen, wenn versucht wird, den -Header über die Dispatcher-Konfiguration oder durch Hinzufügen des PDF-Pfads zu den ausgeschlossenen Ressourcenpfaden im Apache Sling-Dispositionsfilter zu überschreiben.
- Wenn Sie Option „Für alle Ressourcenpfade aktivieren im Dispositionsfilter deaktivieren, können PDFs wie erwartet in einer neuen Registerkarte geöffnet werden.
- Das Problem kann möglicherweise nicht in allen Umgebungen oder Browsern reproduzierbar sein. In einigen Fällen kann das Problem durch Löschen des CDN-Cache behoben werden.
Ursache
Der Content-Disposition-Header ist für binäre Assets (wie PDFs) in der AEM-Veröffentlichungsinstanz standardmäßig auf attachment festgelegt. Dies führt dazu, dass Browser die Datei herunterladen, anstatt sie inline anzuzeigen. Das Problem kann behoben werden, indem Sie diese Kopfzeile auf Dispatcher-Ebene überschreiben oder den Dispositionsfilter anpassen.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Überprüfen Sie die Umgebung, um festzustellen, ob das Problem bei der Autoren- und/oder Veröffentlichungsumgebung auftritt. Adobe empfiehlt nur das Ändern von Content-Disposition-Headern auf der Veröffentlichungsebene.
-
Überprüfen Sie die Einstellungen für Apache Sling Disposition Filter .
- Navigieren Sie in der AEM-Web-Konsole zu Apache Sling Disposition Filter.
- Wenn Für alle Ressourcenpfade aktivieren markiert ist, deaktivieren Sie diese Option und testen Sie, ob PDFs in einer neuen Registerkarte geöffnet werden.
- Wenn Sie die Option Für alle Ressourcenpfade aktivieren aktivieren müssen, fügen Sie die entsprechenden PDF-Pfade zu Ausgeschlossene Ressourcenpfade hinzu und testen Sie erneut.
-
Passen Sie die Dispatcher-Konfiguration für die Veröffentlichungsebene an.
Fügen Sie die folgende Regel hinzu oder aktualisieren Sie sie, um den Content-Disposition-Header für PDF-Dateien zu überschreiben:
code language-none Header unset Content-Disposition Header set Content-Disposition inline -
Laden Sie die Dispatcher-Konfiguration neu und löschen Sie alle relevanten Caches.
-
Löschen Sie das CDN und den Browser-Cache, nachdem Sie Konfigurationsänderungen vorgenommen haben, um sicherzustellen, dass die neuen Header angewendet werden.
-
Testen Sie den PDF-Link, indem Sie einen PDF-Link in der AEM-Textkomponente erstellen und überprüfen Sie, ob durch Klicken auf den Link die PDF in einer neuen Registerkarte geöffnet wird, anstatt sie herunterzuladen.