2

我们正在创建几个 (19) 站点以托管在 Sharepoint 2007 中,并希望使用 Google Analytics。第一点很简单,只需将 Google Analytics javascript 放在 Sharepoint 母版页中,一切都按预期工作。

但是,我们希望 19 个站点中的每一个都生成单独的统计信息,这是通过为每个站点设置不同的 id 来完成的。我的第一个想法是将 id 存储在每个站点的 web.config 中并更改母版页以读取 javascript:

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

不幸的是,Sharepoint 不喜欢这样,并说:此文件中不允许有代码块。

我的问题是:

有没有办法从 Sharepoint 母版页中的 web.config 读取 appSettings?或者

是否有更好的 Sharepoint 方式将特定于站点的信息放入母版页?或者

我是否坚持为每个站点使用单独的母版页?

4

2 回答 2

6

您提出的建议非常不安全,因为它允许任何使用共享点设计器的贡献者将任何代码添加到母版页,这绝不是一个好主意。我建议在任何情况下都使用服务器控件,这只需几分钟即可开发,但之后会为您省去很多麻烦

于 2010-08-27T03:19:30.197 回答
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 位置中的代码。

另一种选择是使用代码隐藏,但我根据您的问题假设您不想这样做。

于 2010-08-26T16:09:21.850 回答