2017-03-03 43 views
0

data-sly-resource標記允許以下面的方式引用另一個組件中的資源。視圖中的數據 - 資源錯誤處理 - AEM

<article data-sly-resource="path/to/resource"></article> 

我們有path/to/resource被內容作者視爲對話框的一部分。如果內容作者選擇不存在的路徑,則內容作者無法訪問頁面,導致HTTP 500錯誤,並且沒有其他方法可以在不去CRX的情況下進行更正。在不能訪問CRX的環境中,我們無法刪除不正確的節點。異常日誌中是

Caused by: org.apache.sling.scripting.sightly.SightlyException: org.apache.sling.api.resource.ResourceNotFoundException: No resource found 
at com.adobe.cq.sightly.WCMScriptHelper.includeResource(WCMScriptHelper.java:143) 
at com.adobe.cq.sightly.WCMScriptHelper.includeResource(WCMScriptHelper.java:86) 
at com.adobe.cq.sightly.internal.extensions.ResourceExtension.call(ResourceExtension.java:99) 
at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:89) 

的開箱reference component(/libs/foundation/components/reference/reference.jsp)的由具有catch塊處理這一點,內容創作者可以正確的路徑。但這是基於JSP而不是基於視覺的。

有沒有辦法在視力中處理這個問題?

回答

1

來處理這個正確的方法是通過使用的API,對象將嘗試找到資源和處理異常:

<article data-sly-use.helper="myHelper" data-sly-test="${helper.resource}" data-sly-resource="${helper.resource}"></article> 

SLING-5811開始,通過實際的org.apache.sling.api.resource.Resourcedata-sly-resource是可能的,對於舊版本的HTL /視覺,您將需要傳遞路徑。

+0

可能是創建自定義標籤也會有所幫助。但它似乎[這是不允許](http://stackoverflow.com/questions/36335327/aem-sightly-is-it-possible-to-create-custom-data-sly-attributes) –

-1

試試這個語法,路徑應在EL表達式給出:

<article data-sly-resource="${ @ path='path/to/resource'}"></article> 
+0