2010-08-26 73 views
2

我們正在創建幾個(19)網站以在Sharepoint 2007中進行託管並希望使用Google Analytics。第一部分很簡單,只需將Google Analytics JavaScript放入Sharepoint主頁面即可,並且按預期工作。如何在Sharepoint主頁面中包含動態信息?

但是,我們希望19個網站中的每個網站都生成單獨的統計信息,並且這是通過爲每個網站設置不同的ID來完成的。我首先想到的是要存儲在每個站點的web.config中的ID和更改母版頁閱讀本作的JavaScript:

<%= ConfigurationManager.AppSettings["google.analytics.key"]%> 

不幸時,SharePoint不喜歡這樣說:代碼塊中不允許這個文件。

我的問題是:

有沒有一種方法來讀取web.config中的appSettings在SharePoint母版頁?或

是否有更好的Sharepoint方法將特定於站點的信息導入母版頁?或

我堅持使用單獨的每個網站的母版頁嗎?

+0

不完全確定,如果我得到這個 - 但你可以主持一個非常簡單的web部件什麼都不是,但更新您的母版頁中的Web.config中的值)? – Shaneo 2010-08-26 15:08:23

+0

也許吧,但似乎有點矯枉過工,不得不創建一個web部件來處理一條小線可以完成的事情。如果Sharepoint沒有涉及,我可以把它放在master頁面中,它可以很好地工作 - 我認爲必須有一個「共享點方式」做同樣的事情,我根本不知道。 – Ragoczy 2010-08-26 15:21:34

回答

5

SharePoint默認情況下不允許在母版頁中進行代碼,那麼您需要將主頁標記爲對代碼安全。在你的web.config,您將有以下設置:

<SharePoint> 
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="10" totalFileDependencies="50" AllowPageLevelTrace="false"> 
    <PageParserPaths> 
    </PageParserPaths> 
</SafeMode> 

您需要將其更改爲包括:

<PageParserPaths> 
    <PageParserPath VirtualPath="/_layouts/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/> 
</PageParserPaths> 

這將告訴的SharePoint,允許在母版代碼。您可以使用相同的想法來允許其他SharePoint位置中的代碼。

另一個選擇是使用代碼隱藏,但我假設根據你的問題,你不想這樣做。

+0

這樣做!謝謝!必須將VirtualPath更改爲「/ _catalogs/masterpage/*」,因爲我們是自定義的,但它現在就像一個魅力! – Ragoczy 2010-08-26 19:39:30

6

你提出的建議是非常不安全的,因爲它允許任何貢獻者使用SharePoint設計師添加任何代碼到母版頁,這絕不是一個好主意。我會建議在任何情況下使用服務器控件,這隻需要幾分鐘的開發,但會爲您節省很多頭痛後

+0

感謝您的警告。因爲我們只有兩名開發人員在Sharepoint工作,所以我們最初將使用web.config解決方案,但我們會考慮未來的服務器控件。 – Ragoczy 2010-08-27 12:38:57

相關問題