2009-04-24 17 views
3

爲了簡化我們的SharePoint環境,我希望有一個集中的單個位置,所有的母版頁都存儲在這裏,所以我希望直接從_layouts目錄引用母版頁文件。從佈局目錄中運行MasterPages

我的文件添加到「\ LAYOUTS \ MyMasterPages」目錄,然後更新SPWeb對象使用該路徑:

web.MasterUrl = "/_layouts/MyMasterPages/newdefault.master" 

但是,當我去到現場我得到:

參考文件 '/_layouts/MyMasterPages/newdefault.master' 不允許在此頁面上使用。在 System.Web.UI.TemplateParser.ProcessError(字符串 消息)在 System.Web.UI.BaseTemplateParser.GetReferencedType(VirtualPath virtualPath,布爾allowNoCompile)
在 System.Web.UI.PageParser.ProcessMainDirectiveAttribute(字符串 設備名稱,字符串名稱,字符串值, IDictionary的parseData)在 System.Web.UI.TemplateParser.ProcessMainDirective(IDictionary的 mainDirective)

我假設,這可能是由於信任級別的安全策略和一個CAS配置但是我不完全確定。有沒有一種方法可以允許在整個企業中使用母版頁的中心方式,還是我堅持使用/ _catalog /虛擬路徑?

回答

0

我的理解(但我不知道爲什麼)是Master Pages需要在每個網站集的MasterPage庫中。

由於您需要將這些軟件包部署到服務器場中的每個SharePoint服務器(前端,應用程序,數據庫等),我認爲該需求要麼與羣集相關,要麼與數據庫和重影相關。

在這兩種情況下,無論您的服務器場大小如何,都要確保使用自定義功能作爲部署母版頁的方式。

我明白想要用SharePoint自己的方式來做事,雖然我通常在這種想法上,但過去一年的痛苦教會了我,建議的SharePoint邊界內部生活是最好的方式去。

+0

它幾乎沒有什麼意義限制masterpages到網站集的水平。我不確定MS爲什麼這麼做。它迫使您在多個位置維護相同的文件,因爲沒有企業解決方案將被限制爲單個網站集。我想找出阻止你做這件事的機制,然後衡量我的選擇。 – webwires 2009-04-24 16:33:01

0

SharePoint網站使用的母版頁必須位於母版頁庫中。就我所知,這是SharePoint的一項艱難要求。

這給你比你想象的更多的好處。這使您可以使用SharePoint設計器實時更改母版頁,但只能對您進行更改。一旦主頁面登入併發布爲主要版本,變更對公衆可見。您還擁有母版頁上的版本歷史記錄。

我明白你的痛苦,我一直和你一樣。我學到的是:不要與平臺對抗,只是在平臺上工作。