AEM:Content-Disposition ヘッダーにより、テキストコンポーネント内のPDF リンクが常にダウンロードされます
この記事では、Adobe Experience Manager(AEM)テキストコンポーネントで作成されたPDF リンクが、新しいタブで開くのではなく、常にダウンロードをトリガーにする理由を説明し、問題を解決するための手順を示します。
説明 description
環境
Adobe Experience Manager(AEM)、すべてのバージョン
問題/症状
- PDF リンクがAEMの標準搭載テキストコンポーネント(リッチテキストエディター)で作成される場合、リンクをクリックすると、リンクが新しいタブで開かれるか、同じタブで開かれるかに関係なく、常にPDFがダウンロードされます。
- PDFのブラウザー応答ヘッダーに
content-disposition: attachmentが含まれています。 - このビヘイビアーは、Dispatcher設定を使用してヘッダーを上書きしようとしたり、Apache Sling Disposition フィルターの除外リソースパスにPDF パスを追加したりしても保持されます。
- 破棄フィルターの「すべてのリソースパスに対して有効にする」をオフにすると、PDFを新しいタブで予期したとおりに開くことができます。
- この問題は、すべての環境またはブラウザーで再現できない場合があります。 CDN キャッシュをクリアすると、問題が解決される場合があります。
原因
AEM パブリッシュのバイナリアセット(PDFなど)のContent-Disposition ヘッダーは、デフォルトでattachmentに設定されています。 これにより、ブラウザーはファイルをインラインで表示するのではなくダウンロードします。 Dispatcher レイヤーでこのヘッダーを上書きするか、配置フィルターを調整すると、問題を解決できます。
解決策 resolution
問題を解決するには、次の手順に従います。
-
環境を確認して、問題がオーサー、公開、またはその両方で発生するかどうかを判断します。 Adobeでは、パブリッシュ層のContent-Disposition ヘッダーのみを変更することをお勧めします。
-
Apache Sling Disposition Filterの設定を確認します。
- AEM Web コンソールで、Apache Sling Disposition Filterに移動します。
- 「すべてのリソースパスに対して有効にする」がオンになっている場合は、チェックを外して、PDFが新しいタブで開かれるかどうかをテストします。
- 「すべてのリソースパスに対して有効にする」をオンにする必要がある場合は、関連するPDF パスを除外リソースパス に追加して、もう一度テストします。
-
パブリッシュ層のDispatcher設定を調整します。
次のルールを追加または更新して、PDF ファイルのContent-Disposition ヘッダーを上書きします。
code language-none Header unset Content-Disposition Header set Content-Disposition inline -
Dispatcher設定をリロードし、関連するキャッシュをすべてクリアします。
-
設定変更を行った後、CDNとブラウザーキャッシュをクリアして、新しいヘッダーが適用されるようにします。
-
PDF テキストコンポーネントでPDF リンクをオーサリングしてAEM リンクをテストし、リンクをクリックすると、ダウンロードする代わりに新しいタブでPDFが開くことを確認します。