2009-04-24 3 views
3

私たちのSharePoint環境を単純化するために、すべてのマスターページが格納される中央と単一の場所を用意したいので、_layoutsディレクトリから直接masterpageファイルを参照したいと考えていました。レイアウトディレクトリからMasterPagesを実行する

私は「\ LAYOUTS \ MyMasterPages」ディレクトリにファイルを追加して、そのパスを使用してSPWebオブジェクトを更新:

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

しかし、私は私が得るサイトに行くとき:

参照ファイル '/_layouts/MyMasterPages/newdefault.master' はこのページでは許可されていません。 System.Web.UI.BaseTemplateParser.GetReferencedType(VirtualPath virtualPath、ブールallowNoCompile)で System.Web.UI.TemplateParser.ProcessError(文字列 メッセージ)で
System.Web.UI.PageParser.ProcessMainDirectiveAttribute(文字列で System.Web.UI.TemplateParser.ProcessMainDirective(IDictionaryを mainDirective)

で DEVICENAME、文字列名、文字列値、 IDictionaryをparseData)私はこのレベルのセキュリティ・ポリシーとAを信頼するように起因する可能性があると仮定していますCASの設定私は完全にはわからない。企業全体でマスターページを使用するこの中心的な方法を可能にする方法はありますか?/ _catalog/virtual pathを使用していますか?

答えて

0

マスターページが各サイトコレクションのマスターページギャラリーに存在する必要があるということを私は理解していますが(なぜわかりませんが)

ファーム内の各SharePointサーバー(フロントエンド、アプリケーション、データベースなど)にこれらのパッケージを展開する必要があるため、要件はクラスタリングまたはおそらくデータベースとゴーストに関連していると思います。

どちらの場合も、ファームサイズに関係なく、マスターページを展開する方法としてカスタム機能を使用するようにしてください。

私はSharePointで自分のやり方をしたいと思っています。私がこのような考え方に乗っている間は、過去の痛みの年は、推奨されるSharePoint境界内に住むことが最善の方法です行く。

+0

それは、サイトコレクションレベルにmasterpagesを制限するほとんど意味がありません。なぜ私はMSがこれをしたのか分かりません。エンタープライズソリューションは単一のサイトコレクションに限定することができないため、同じファイルを複数の場所に維持する必要があります。私はあなたがそれをやり遂げるのを妨げる仕組みを見つけて、私の選択肢を秤量したいと思っています。 – webwires

+0

あなたが言っていることは分かっていますが、各サイトコレクションがデータベースインスタンスであることはわかります。私が知らない間に、私はそこに手がかりがあると思う。 – MrChrister

+0

主な開発シナリオでは、SharePointデザイナを使用することになりました。 SharePointデザイナーはコンテンツデータベース内のファイルのみを変更できるため、依存関係を作成する必要がありました。 –

0

SharePointサイトで使用されるマスターページは、マスターページギャラリーに配置する必要があります。これは、私が知る限り、SharePointによって難しい要件です。

これはあなたが考えるより多くの利点をもたらします。これにより、SharePointデザイナを使用してマスターページをリアルタイムで変更することができます。マスターページがチェックインされ、メジャーバージョンとして公開されると、その変更は一般に公開されます。また、マスターページにバージョン履歴があります。

私はあなたの痛みを理解しています、私はあなたと同じ状況にいます。私が学んだのは、プラットホームと戦わず、その中で働くだけです。

関連する問題