2011-05-10 76 views
3

我在sitecore中成功創建站點A並已部署到生產環境,現在我想將另一個站點B添加到同一個站點內核實例。我意識到如何做到這一點,但我不知道如何將這兩個網站的代碼(佈局,控件等)分開,以便不會真正依賴其他網站。而不是將兩個站點結合在同一個站點中在Visual Studio中的一個項目,我想知道是否可以爲站點B創建一個新項目,但是仍然重用站點A項目中的sitecore文件?我想要真正理解的是在sitecore中構建多站點解決方案的最佳實踐。有任何想法嗎? 注意:站點A和站點B在各個方面都完全不同,除了它們需要在同一個站點核心實例上運行。sitecore多站點設置

回答

3

,我建議你在文件系統上的每個站點的資產分成文件夾:

/Website/ 
/Website/sites/ 
/Website/sites/SiteA (<-- specific to SiteA) 
/Website/sites/SiteB (<-- specific to SiteA) 
/Website/sites/Common (<-- shared across any sites) 

在Sitecore的,爲您呈現部件做同樣的。

- layouts 
    - SiteA 
    - SiteB 
    - Common 
    - Sublayouts 
    - SiteA 
    - SiteB 
    - Common 

與同爲模板:

Templates 
    User Defined 
    SiteA 
    SiteB 
    Common 

分離出C#類庫也因此他們是具體到每一個網站,並有hared代碼的共同項目的任何網站(如工具代碼,擴展方法,助手類等)。 Visual Studio解決方案:

- WebApp 
- SiteALib (<- SiteA specific code) 
- SiteBLib (<- SiteB specific code) 
- CommonLib (<- reusable code for any site) 

至於內容樹的網站,他們也處於同一水平分離出來:

sitecore 
    content 
    SiteA (<-- root item for SiteA) 
     home (<-- start item for SiteA) 
    SiteB (<-- root item for SiteB) 
     home (<-- start item for SiteB) 
+0

謝謝你,這是有道理的。但爲了進一步分離項目,我正在考慮爲站點B創建一個新項目,該站點將有sitecore dll引用到站點A項目,併爲每個項目/站點維護兩個獨立的web.configs。網頁。siteA的網站節點的配置將指向內容樹中的siteA,siteB的web.config將指向內容樹中的siteB。有了這個模型,我希望在一個使用相同sitecore實例的解決方案中實現兩個不同的項目。我希望我能說清楚自己在說什麼;)。 – xoail 2011-05-10 17:50:12

+2

啊,這聽起來像你想從Sitecore解決方案中刪除你的網站的具體細節。看看這個:http://seankearney.com/post/Visual-Studio-Projects-and-Sitecore.aspx – 2011-05-10 18:47:43

0

我認爲最簡單的解決方案就是爲每個站點使用佈局,子佈局等。

你可能只需要在佈局文件夾2個文件夾:

佈局/站點A 佈局/ SiteB中

它們將包含每個站點的ASPX & ASCX文件。然後你會使用相同的Sitecore文件。如果需要的話,您也可以在解決方案中共享DLL或其他項目(如果您有一個基於Util的DLL或您在所有解決方案中使用的一些常規WebControls)。

這可能不是分離它們的最佳方式,但它很簡單。

只要記住在section中有獨立的s,並且在web.config的publish:end部分也有新的站點。

記住,你就可以從一個網站訪問內容到另一個(即www.sitea.com/sitecore/content/Siteb.aspx),除非你有一些代碼,處理該。

另一個常用技巧是使用外部URL來鏈接站點,並且爲了避免Sitecore將它們更改爲內部URL,請在另一個域(即edit.mysites.com)上設置editingsite。因爲如果您在www.sitea.com/sitecore上進行編輯並在www.sitea.com上插入外部網址,Sitecore會「幫助您」並將其轉換爲內部網址,因爲域名匹配。