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

問題を解決するには、次の手順に従います。

  1. 環境を確認して、問題がオーサー、公開、またはその両方で発生するかどうかを判断します。 Adobeでは、パブリッシュ層のContent-Disposition ヘッダーのみを変更することをお勧めします。

  2. Apache Sling Disposition Filterの設定を確認します。

    • AEM Web コンソールで、Apache Sling Disposition Filterに移動します。
    • 「すべてのリソースパスに対して有効にする」がオンになっている場合は、チェックを外して、PDFが新しいタブで開かれるかどうかをテストします。
    • 「すべてのリソースパスに対して有効にする」をオンにする必要がある場合は、関連するPDF パスを除外リソースパス に追加して、もう一度テストします。
  3. パブリッシュ層のDispatcher設定を調整します。

    次のルールを追加または更新して、PDF ファイルのContent-Disposition ヘッダーを上書きします。

    code language-none
    Header unset Content-Disposition
    Header set Content-Disposition inline
    
  4. Dispatcher設定をリロードし、関連するキャッシュをすべてクリアします。

  5. 設定変更を行った後、CDNとブラウザーキャッシュをクリアして、新しいヘッダーが適用されるようにします。

  6. PDF テキストコンポーネントでPDF リンクをオーサリングしてAEM リンクをテストし、リンクをクリックすると、ダウンロードする代わりに新しいタブでPDFが開くことを確認します。

recommendation-more-help
experience-cloud-kcs-help-kbarticles