2014-02-10 32 views
1

過去3年左右,我們一直在增加對Adobe CQ的使用。我們開始使用5.4,其中幾個開發人員(根據Adobe顧問的建議)在/ var //節點中存儲了多個數據查找「表」。這些被用作查找商店如郵政編碼,網站ID等部件查找數據存儲在Adobe CQ

現在我們已經涉足CQ 5.6,我們有一些困難,在訪問我們的出版商比如這個數據。作者工作正常,但在發佈者時嘗試訪問數據會導致404錯誤。前一段時間,我們還有其他一些顧問提到將數據存儲在/ var中並不是一個好主意,但我不記得背後的原因那。

是否有用於存儲通用查找數據,幾個組件,頁面或其它物體將要訪問的推薦位置?

在此先感謝您的幫助。

+0

謝謝大家的回覆。我將把這件事帶回我的團隊進行進一步討論。存儲在/ var下的數據不會經常更改或完全不會被編輯人員維護。提出這個問題是爲了確定一個普遍的社區最佳實踐,因爲這個問題引發了一些辯論。 還有一個真正令人擔憂的問題,那就是在/ var背後有什麼東西可能會導致災難性的發生,這一點我們都想避免。 –

回答

2

我不是在它背後的原因,或許與視覺沿途可以介入,作出的決定一個人的權威,但我可以告訴,VAR原是一個位置任何臨時或導出數據,但不一定是面向客戶。

版本控制和一堆其他信息存儲在那裏,所以它不應該暴露給客戶端。

/等是已經敞開的調度員通常,這樣的邏輯的地方,把查找的信息,如果它屬於作爲SDLC的一部分,是這個位置內的位置。

如果查找是可驗證的,將它放在/ content目錄中會更明智,如果您正在執行任何涉及多租戶的任何操作,都將符合重寫策略。此外,如果不同的租戶訪問相同的查找數據, 即

http://www.mysite.com/mypage.html goes to /content/mysite/mypage and 
http://www.anothersite.com/anotherpage.html goes to /content/anothersite/anotherpage, 

重寫規則可用於共享位置。 例如

www.mysite.com/lookups/postcodes.json /content/lookups/postcodes 
www.anothersite.com/lookups/postcodes.json /content/lookups/postcodes 

希望是有道理的。

1

/etc是存儲通用數據是從CQ的顯示部分分開的好地方。例如,CQ使用/etc/blueprints來存儲有關使用LiveCopy的信息。作者和發佈者都有/etc位置,所以這不是問題。 CQ可以對/var做有趣的事情,所以我不確定爲什麼它被推薦爲存儲位置。

2

我不確定這個問題很簡單,「你應該把它放在哪裏」。你的組件/頁面如何請求這些信息?它是通過AJAX調用嗎?如果是這樣的話,你應該真的通過一個Sling GET Servlet來訪問它,它將數據生成爲JSON。如果您正在討論通過作者實例對話框訪問這些數據,那麼位置應該沒有關係,因爲通常您的作者實例非常開放。如果您正在討論訪問數據服務器端,作爲組件呈現的一部分(在JSP或其支持類中),那麼您絕對不需要將它移動到任何地方,因爲JcrResourceResolver可以訪問它。

我一般不把任何東西在/ var(這是樹的系統的一部分),但解決的辦法是不要選擇另一個任意位置,只是讓你可以公開它。解決方案是瞭解您需要訪問該信息的位置,然後針對該情況適當公開它。合理?

如果您可以提供有關如何檢索數據的更多詳細信息,我很樂意提供更多輸入。