解決當AEM是EDS內容來源時,通用編輯器的存取和設定問題
當Edge Delivery Services (EDS)使用AEM作為其內容來源時,作者在通用編輯器中看不到預期的中繼資料欄位、區塊設定值、範本變數或JSON資料。 原因幾乎永遠是架構或設定不符:EDS專案僅支援一個主要內容來源,BYOM (自攜模型)模型必須明確將中繼資料公開給通用編輯器,動態欄位母體需要自訂通用編輯器擴充功能,以及JSON或設定資料必須透過EDS存放庫、結構化內容或DAM對應有意公開。 確認編寫模式、強制實施單一來源規則,並公開必要的中繼資料和資料可恢復缺少的編輯器欄位。
說明 description
問題:當AEM為EDS內容來源時,通用編輯器不會顯示中繼資料、區塊欄位或JSON資料
說明
使用Edge Delivery Services (EDS)和Universal Editor (UE)時,作者在編輯器中看不到預期的中繼資料欄位、區塊設定值、範本變化或JSON資料。 頁面無法在UE中正確載入,或作者無法設定頁面層級中繼資料、動態欄位或封鎖選項。 在其他情況下,客戶會嘗試不支援的架構模式,例如在單一EDS專案中混合使用通用編輯器和以檔案為基礎的製作,或在同一fstab.yaml中設定多個內容來源。 這些錯誤設定會導致不一致的轉譯、遺失中繼資料、無法使用某些編寫介面,或區塊無法取用AEM的必要輸入。
環境:
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- AEM Managed Services
- AEM as a Cloud Service — 網站
- Edge Delivery Services (EDS)
- 通用編輯器
問題/症狀:
- 通用編輯器載入,但中繼資料欄位或區塊設定欄位未出現,未顯示錯誤。
- 區塊無法呈現,因為BYOM中缺少頁面層級或區塊層級中繼資料。
- 作者希望在一個EDS專案中進行檔案式和UE編寫,但只能識別一個來源。
- 自訂JSON或設定資料無法用於Universal Editor,即使檔案存在於DAM或GitHub中也是如此。
- UE中永遠不會填入區塊的動態對話方塊/下拉式清單選項。
根本原因:
EDS和Universal Editor遵循嚴格的架構模型。 單一EDS專案只有一個主要內容來源,BYOM模型必須明確向通用編輯器公開中繼資料、動態欄位母體需要自訂通用編輯器擴充功能,以及JSON或其他設定資料必須透過EDS存放庫、結構化內容或DAM對應有意公開。 這些區域中任何區域的設定錯誤都會導致遺失中繼資料、無法存取設定資料或不支援的混合式設定。
如何確認
- 確認專案使用哪種撰寫模式(通用編輯器、以檔案為基礎或兩者)來建立是否已啟用通用編輯器並預期其適用於有問題的頁面。 如果不清楚,請擷取在UE中開啟的確切URL。
- 請檢閱
fstab.yaml或專案需求,以確認EDS專案僅使用一個主要內容來源,以及設定是否嘗試將AEM和檔案型來源混合到一個專案中。 - 確認UE編寫所需的頁面層級中繼資料是否透過BYOM公開,包括基底
page-metadata模型和任何範本特定模型。 若需要範本,請確認template= page-type已儲存在頁面中繼資料中。
解決方法 resolution
-
強制執行單一內容來源規則。 EDS支援每個專案一個主要內容來源。 如果專案混合來源(例如AEM和以檔案為基礎的製作),請建立兩個獨立的EDS網站,並使用CDN路由在這些網站之間導向流量。 不支援在單一存放庫中使用原生混合UE及檔案式製作。
-
透過BYOM公開UE編寫所需的中繼資料。 確認基底
page-metadata模型存在,並視需要定義範本特定的中繼資料模型。 確認AEM頁面屬性公開區塊預期的template中繼資料值。 -
根據自訂JSON或設定資料是作者可編輯還是靜態公開:
- 如果資料可供作者編輯,請使用EDS結構化內容並定義結構。
- 如果資料是靜態的,請將JSON儲存在EDS存放庫中,或儲存在AEM DAM中,包含明確的對應。
確認產生的端點URL可連線,讓UE和區塊可以擷取資料。
4. 正確處理動態下拉式清單或欄位填入。 EDS不支援Granite UI資料來源,因此無法以這種方式載入動態下拉式清單選項。 請改用具有自訂欄位和使用者端API呼叫的通用編輯器擴充功能,這需要UE擴充功能才能實作。
5. 驗證需要多個頁面範本之網站的範本和封鎖行為。 將相關的AEM頁面標示為使用作為範本,並設定樣式的範本中繼資料(CSS類別)。 從範本建立頁面,並確認該頁面包含正確的初始內容和中繼資料。
驗證
- 在通用編輯器中開啟頁面,並確認所有預期的中繼資料欄位和區塊設定欄位都可見。
- 在
.page網域上載入頁面,並確認將動態中繼資料或JSON資料轉譯到頁面標頭中。 - 確認對JSON端點的
fetch()呼叫會傳回預期的內容。 - 重新發佈後,使用動態設定轉譯器正確確認區塊。