使用使用者端轉譯元件進行ESI個人化快取的AEM解決方案

當Edge Side Include (ESI)搭配使用於使用者端上轉譯的元件,而非當傳回為伺服器轉譯的HTML片段時,個人化內容可能不會如預期般運作。 將實作與ESI使用案例的伺服器轉譯片段端點對齊,或對保持使用者端轉譯狀態的元件使用使用者端方法,有助於解決問題。

說明 description

環境

Adobe Experience Manager as a Cloud Service

問題/症狀

  • 在Adobe Experience Manager as a Cloud Service發佈頁面上針對個人化內容實作ESI後,使用者可能會看到未預期的快取行為。
  • 如果匿名使用者暖化公開頁面的快取,則經過驗證的使用者稍後可能會看到個人化元件的匿名版本,或可能會發生相反情況。
  • 受影響的元件可能包括標題、訂閱區域等專案,或使用者內容預期會不同的其他頁面元素。
  • 即使個人化輸出未按預期呈現,記錄檔或瀏覽器中仍不會顯示任何明確的錯誤訊息。
  • 您可以比較快取熱身後匿名與已驗證工作階段中的相同頁面,並檢查受影響的元件是在原始回應中傳回為伺服器轉譯的HTML,還是使用者端JavaScript稍後轉譯為的問題,藉此確認問題。

解決方法 resolution

請嘗試下列步驟來解決問題:

  1. 檢查用於個人化的元件是否從來源以伺服器轉譯的HTML片段傳回,或稍後在瀏覽器中由JavaScript轉譯。

  2. 如果您需要ESI來組合個人化內容,請將相關元件公開為可單獨包含的伺服器轉譯HTML片段。 更新您的ESI或Apache Sling動態包含設定,以便其參考伺服器轉譯的片段端點。

  3. 如果元件必須維持使用者端轉譯,請為該元件使用使用者端個人化模式,而不是依賴ESI進行組裝。

  4. 驗證更新的實作。

    • 在匿名與已驗證的工作階段中測試頁面。
    • 確認每個工作階段在快取熱身後都會收到受影響元件的預期版本。
    • 確認原始回應包含預期要由ESI處理的元件片段輸出。

相關閱讀

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