SharePoint ページとページ モデル
この記事では、SharePoint ページ モデルの概要について説明します。これには、ページの種類、SharePoint と SharePoint Online で使用可能な既定のページ ファイル、およびページの処理方法に関する情報が含まれます。
レンダリングされる SharePoint ページは、次の 3 つの種類のページの組み合わせになります。
マスター ページ – コンテンツのレイアウトと外観を制御します
コンテンツ ページ – ページ フィールド コントロールが含まれます
わかりやすいオーサリング ページ – ユーザーがコンテンツを追加する場所
用語と概念
表 1. SharePoint ページ モデルに関連する主要な用語と概念
用語または概念 | 定義 | アクセス経路 | 詳細 |
---|---|---|---|
グループ作業サイト | チーム サイト。 | ||
コンテンツ プレースホルダー | 後ほどプログラムで置き換えることが可能なコントロールまたはコンテンツの場所を予約する、マスター ページ内のエントリ。 | すべての SharePoint マスター ページ | コンテンツ プレースホルダーは、SharePoint マスター ページの構成要素です。 |
マスター ページ | SharePoint ページの左ナビゲーション要素およびトップ ナビゲーション要素の動作と表示を標準化するページです。 | SharePoint ファイル システムのマスター ページ ギャラリー | |
マスター ページ ギャラリー | すべてのブランド化要素 (マスター ページ、ページ レイアウト、JavaScript ファイル、CSS、および画像) が既定で格納される、SharePoint 内の特別なドキュメント ライブラリ。 サイトごとに独自のマスター ページ ギャラリーがあります。 | 設定 > サイト設定 > マスター ページとページ レイアウト | マスター ページ ギャラリーには、マスター ページや CSS ファイルなどのブランド化アセットを格納するカタログが入れられます。 ヒント: カスタム ブランド化要素を作成する場合は、既定のマスター ページ ギャラリー ファイル構造にカスタムアセットを格納します。 SharePoint のマスター ページ、マスター ページ ギャラリー、およびページ レイアウト |
ダウンロード最小化戦略 (MDS) | ユーザーが SharePoint ページ間でナビゲートするときにブラウザーによるデータ ダウンロード量を削減する戦略です。 | サイトの設定 | MDS がアクティブな場合、SharePoint はすべてのページ要求を通過 /_layouts/15/start.aspx し、新しいページ要求と以前に読み込まれたページの視覚的な違いを確認します。- SharePoint でのページ パフォーマンスの最適化 - ダウンロード最小化戦略の概要 |
ナビゲーション | ユーザーが SharePoint サイトの情報アーキテクチャの中を移動できるようにする機能です。 SharePoint のナビゲーション要素には、検索、ツリー コントロール、ボタン、リボン、ハイパーリンク、タブ、メニュー、分類があります。 | - Navigation クラス - NavigationNode クラス |
|
Oslo マスター | SharePoint における既定のマスター ページ。 | SharePoint ファイル システムのマスター ページ ギャラリー | seattle.master マスター ページとは異なり、トップ ナビゲーション領域と同じ位置に現在のナビゲーションがあります。 |
ページ コンテンツ コントロール | Web パーツを追加可能な、発行サイト上のコントロール。 | ||
ページ レイアウト | コンテンツの一貫した表示を強制するために発行ページに適用されるテンプレート。 | SharePoint ファイル システムのマスター ページ ギャラリー | SharePoint でページ レイアウトを作成する |
ページ モデル | ブラウザーでユーザーに結果的に表示される SharePoint ページのファイル、コンテンツ、対話式操作。 | SharePoint ページ モデルの概要 | |
発行ページ | 発行サイトの .aspx ページ。 | PublishingPage クラス | |
発行サイト | 発行サイトと発行ページにアクセス可能な SharePoint サイト。ページ レイアウト、分類、管理ナビゲーション、および他の Web コンテンツ管理とエンタープライズ コンテンツ管理の機能が含まれます。 | - PublishingWeb クラス - SharePoint サイト開発の新機能 |
|
Seattle.master | SharePoint における既定のマスター ページ。 | SharePoint ファイル システムのマスター ページ ギャラリー | |
チーム サイト | ドキュメント、wiki、アイデア、プロセスなどに関してユーザーがグループ作業をすることを意図して設計されているサイト。 | ||
テキスト レイアウト | Wiki ページに表示されるコンテンツ領域を定義します。 | ||
テキスト レイアウト コントロール | テキスト、画像、Web パーツ、アプリ パーツを含めることができる wiki ページ コントロール。 | ||
トップレベル サイト | サーバーによって提供される既定のトップレベル サイト。 | SharePoint サイトを構築する | |
Web パーツ | サイト ページのコンテキスト内で実行されるサーバー側コントロール。 | SharePoint アプリからのカスタム アクションとプロパティ バッグ エントリ | |
Web パーツ ページ | Web パーツを含めることができる、Web パーツ ゾーンで構成されるコンテンツ ページ。 Web パーツは、Web パーツ ページ上で WebPartDefinition オブジェクトによって表示されます。 | Microsoft.SharePoint.Client.WebParts 名前空間 | |
Web パーツ領域 | Web パーツを追加可能なページ上の領域。 | ||
Wiki ページ | エンタープライズ Wiki サイト テンプレートを使用するコンテンツ ページ。 | Provisioning.Pages サンプル アプリ |
SharePoint マスター ページ
マスター ページは、.master 拡張子の付いた ASP.NET ファイルです。 ディレクティブが<%@ Master
含まれており、HTML、Head、Form などの最上位の HTML 要素を定義します。 最初に、コントロールとアセンブリを一覧表示してから、ブラウザーに HTML のレンダリング方法を指示する、DOCTYPE のドキュメント型定義を宣言します。 SharePoint は、XHTML 1.0 と HTML5 の DOCTYPE で最適に動作するように調整されています。
SharePoint には、既定でいくつかのマスター ページが付属しています。 これらのマスター ページによって、SKU とサイトの種類に適切な特定の SharePoint ページの既定の構造とクロムが、適用可能な場所、具体的にはページの上部と左側に提供されます。 表 2 に、既定の SharePoint と SharePoint Online のマスター ページをまとめます。
表 2. 既定の SharePoint マスター ページ
マスター ページ | 説明 |
---|---|
Custom.master | フォームやビューなどのシステム ページ。 すべての SharePoint SKU と SharePoint Online SKU で使用されます。 |
Default.master | 発行サイト内のサイト ページ。 すべての SharePoint SKU と SharePoint Online SKU に含まれています。 発行機能がアクティブになっているときに使用できます。 |
Application.master | scope.aspx や keyword.aspx などの一部のシステム ページ。 すべての SharePoint SKU と SharePoint Online SKU に含まれています。 |
Minimal.master | すべての SharePoint SKU で使用可能な既定のマスター ページ オプション。 |
Seattle.master | すべての SharePoint SKU と SharePoint Online SKU で使用可能な既定のマスター ページ オプション。 |
Oslo.master | すべての SharePoint SKU と SharePoint Online SKU で使用可能な既定のマスター ページ オプション。 |
Kyoto.master | SharePoint Online で使用可能なマスター ページ。 |
Berlin.master | SharePoint Online で使用可能なマスター ページ。 |
Lyon.master | SharePoint Online で使用可能なマスター ページ。 |
Mysite15.master | OneDrive for Business サイト (以前: 個人用サイト、個人用サイト、OneDrive Pro サイト)。 |
それぞれの既定の SharePoint マスター ページには、HTML、CSS、JavaScript など SharePoint で機能する一般的な Web プログラミング テクノロジに必要なコントロールが含まれます。
コンテンツ プレースホルダーに、コンテンツ ページで定義された情報の場所が格納されます。 コンテンツ プレースホルダーは、ページの領域に相当します。 マスター ページの各領域は、数個から何百個ものコンテンツ プレースホルダーで定義されます。
SharePoint マスター ページでは、ASP.NET (<asp:
) 宣言と SharePoint (<SharePoint:
) 宣言の両方が使用されます。 宣言内のコロンに続くテキストで、コントロールの機能を定義します。たとえば、SharePoint:PlaceholderGlobalNavigation
は、SharePoint ページのグローバル ナビゲーションをそのページ上の関連 HTML タグに埋め込みます。 マスター ページ上のコンテンツ コントロールは、コンテンツ プレースホルダーを、ContentPlaceHolderID を含むコンテンツにバインドします。
SharePoint には、2 種類のマスター ページ (システム マスター ページとサイト マスター ページ) が付属しています。 システム マスター ページは、SharePoint サイト上のすべてのフォーム ページとビュー ページに適用されます。 一方、サイト マスター ページは、発行サイト上のすべてのページで使用されます。 .master ページ ファイルを開き、 Page ディレクティブを表示することで、サイトが使用しているマスター ページの種類を確認できます。 システム マスター ページには、~masterurl/default.master
などのページ ディレクティブがあります。 サイト マスター ページには、~masterurl/custom.master
などのページ ディレクティブがあります。
CSOM コードを使用して、主に Web オブジェクトに対するコードを作成することによってマスター ページのプロパティを設定できます。 システム マスター ページは MasterUrl プロパティを使用して変更し、サイト マスター ページはオブジェクトの CustomMasterUrl プロパティを使用して変更します。
コンテンツ プレースホルダーの多くに動的トークンが含まれています。これは、SharePoint ページの URL の一部を形成するコードの重要な要素です。 SharePoint は、サーバーと SharePoint ページ間のハイパー テキスト情報の伝達方法を定義した HTTP などのプロトコルのルールに従って URL 文字列を解析します。 通常は、CSS またはテーマ コントロールを指しているコンテンツ プレースホルダーで、SharePoint サーバー側オブジェクト モデルが ~SPUrl
として表現される相対 URL が使用されます。
SharePoint は、動的トークンを使用して、マスター ページを .master ページ コードの <asp:content>
宣言で定義されたコンテンツ ページにバインドします。 表 3 に、SharePoint マスター ページで見つかる動的トークン、およびページが処理されるときに置き換えられる CSOM プロパティ、またはコンテンツ プレースホルダーに SharePoint がレンダリングする URL 文字列の形式をまとめます。
表 3. プロパティ値に置き換えられる、マスター ページ内の動的トークン
動的トークン | 置換後 |
---|---|
~masterurl/default.master | SPWeb.MasterUrl |
~masterurl/custom.master | SPWeb.CustomMasterUrl |
~site/<xyz>.master | <http:// siteColl>/<subsite1>/<subsite2>/<xyz.master> |
~sitecollection/<abc>.master | <http:// siteColl>/<abc.master> |
注:
コンテンツ プレースホルダー内の動的トークンは、サーバー側の API プロパティとメソッドに対応します。 リモート プロビジョニングを使用する場合は、CSOM または REST でコードを記述します。動的トークンと SharePoint URL の詳細については、「SharePoint の URL とトークン」を参照してください。 SharePoint アドインは、サイト URL に適用される一部のトークンを使用します。
Web パーツ ページと Wiki ページ
Web パーツ ページには、構造化情報と非構造化情報を含めることができます。 このページは、Web パーツ領域で構成されます。 Web パーツ領域に配置される Web パーツは、リスト、検索結果、およびクエリからのデータを表示したり、複数のソースからのデータのカスタム ビューを提供したりできます。 Web パーツ ページには、標準的な SharePoint チーム サイトと同じ要素のほとんどが含まれています。 タイトル バーには、タイトル、キャプション、説明、会社のロゴ、またはその他の画像を含めることができます。 Web パーツ ページには、次の要素が追加されます。
- Web パーツ ページ メニュー。Web パーツの追加または変更、ページ レイアウトの設計、個人用ビューと共有ビューの切り替えに使用できます。
- ツール ウィンドウ。Web パーツの検出と追加、Web パーツと Web パーツ ページに関連するプロパティの編集に使用されます。
Web パーツ ページと比較して、Wiki ページの方が構造化されていません。 半構造化形式または非構造化形式のため、ユーザーはコンテンツの作成やグループ作業を容易に実行できます。 既定で、SharePoint は、初めて新しいチーム サイトを表示するときに Wiki ページを表示します。
エンタープライズ Wiki 機能は、SharePoint のすべてのバージョンで利用できます。 エンタープライズ Wiki テンプレートを使用すれば、Wiki ページを含むページ レイアウトの作成と使用が容易になります。 Wiki ページを編集する場合は、Web パーツ、テキスト、およびその他のコンテンツがテキスト レイアウトで表示されます。 テキスト レイアウトによって、Wiki ページ上のコンテンツ領域が整理されます。
Wiki ページの作成には、リモート プロビジョニング パターンを使用します。 WikiPageCreationInformation クラスは Wiki ページの作成に使用可能なメソッドを提供するのに対して、WikiHtmlContent プロパティはページ上の HTML コンテンツを取得して設定します。 Utility クラスには、CreateWikiPageInContextWeb メソッドが含まれています。このメソッドは、SharePoint が WikiPageCreationInformation クラスからのパラメーターを使用して、クライアント ランタイム コンテキストで Wiki ページを作成するために使用します。
ページ レイアウト
ページ レイアウトは、発行サイトに最適なコンテンツ ページです。 これは、ページの本文の構造をカスタマイズすることにより、記事などの SharePoint サイト上のさまざまな種類のページを定義するテンプレートです。 Web パーツ ページがページ上の Web パーツ領域と Web パーツを整理するために存在するテンプレートであるのと同様に、ページ レイアウトはページ上のフィールドを整理するために存在します。 ページ レイアウトで定義されたフィールド コントロールに作成者が作成したコンテンツが含まれており、そのコンテンツの構造がページ レイアウトに基づいています。
注:
ページ レイアウトには Web パーツ領域を含めることができます。
設計者はスタイルをページ フィールド コントロールに適用できます。 これにより、CSS が各フィールドに適用されてレンダリングされる方法を設計者は制御でき、同時にユーザーは各ページ フィールド内のコンテンツを作成および管理できます。
SharePoint では、コンテンツ タイプは、特定のアイテムとドキュメントを定義する (列とも呼ばれる) メタデータと動作の再利用可能なコレクションです。 たとえば、オンライン マガジンの記事のような外観と動作のコンテンツを作成したいという場合があるかもしれません。 コンテンツ タイプを使用すると、簡単に作成できます。 また、他の独特な種類のコンテンツを作成するものの、別のコンテンツ タイプの特性を再利用して共有したいという場合もあるかもしれません。 それぞれのページ レイアウトは他のいずれかのコンテンツ タイプに基づいています。 各コンテンツ タイプには一意の コンテンツ タイプ ID が割り当てられます。
コンテンツ タイプの詳細については、以下を参照してください。
重要
現時点では、リモート プロビジョニング パターンを使用して、SharePoint サイトにすぐに使用できるページ レイアウトを適用することができます。 CSOM コードでカスタム SharePoint 用アドイン コードを使用することによってカスタムのコンテンツ タイプをサイトにプロビジョニングすることもでき、CSOM によるカスタム ContentTypeId の設定は SharePoint Online でサポートされていますが、オンプレミスの SharePoint サイトでリモート プロビジョニングを使用して ContentTypeId をカスタム コンテンツ タイプに設定することは、現在のところサポートされていません。 詳細については、「SharePoint でページ レイアウトを作成する」を参照してください。
SharePoint ページ処理モデル
SharePoint は、マスター ページ、コンテンツ ページ、および作成されたコンテンツを組み合わせてページをレンダリングするテンプレート ベースのページ レンダリング システムです。 ページ レンダリング システムは、ページ処理モデルと呼ばれます。 マスター ページは適用先のサイト上のすべてのページ インスタンスで使用され、コンテンツ ページはそのページに基づくページのすべてのインスタンスで使用されます。
ページ処理モデルは、Web ブラウザーなどのユーザー エージェントがサーバーに対して発行したすべての要求を解析して実行します。 たとえば、contoso.aspx という名前のページを要求しているユーザーがいるとします。 この要求を完了するために、ASP.NET エンジンが 2 つのページを取得します。1 つは contoso.aspx に関連付けられたコンテンツ ページで、もう 1 つはファイル プロバイダーが SharePoint サイトに関連付けたマスター ページです。 また、このエンジンは、フィールドからフィールド コントロールと Web パーツを取得して、それらをページ上でレンダリングします。
注:
チーム サイトとサイトのページ処理ロジックは、発行ページのロジックに似ています。
ページ処理
SharePoint ユーザーが Web パーツ ページを読み込むと、SharePoint がそのテンプレートへのパス、ページ コンテンツ、およびコンテキストを解析することによってそのページを取得します。 また、Web パーツ ページに関連付けられた Web パーツを設定して、WebPartCollection インスタンスをページに割り当て、コンテンツから Web パーツ ページとその Web パーツを生成します。
SharePoint ユーザーが Wiki ページを読み込む (チーム サイトまたは発行サイト上のエンタープライズ Wiki テンプレートを使用して) と、SharePoint がそのテンプレートへのパス、ページ コンテンツ、およびコンテキストを解析することによってそのページを取得します。 また、Wiki ページに関連付けられたテキスト レイアウト コントロールを設定し、コンテンツからエンタープライズ Wiki ページとそのテキスト レイアウトを生成します。
リモート プロビジョニング パターンを使用して Wiki ページをプロビジョニングする方法の詳細については、「Provisioning.Pages のサンプル」を参照してください。
最小限のダウンロード戦略と <AjaxDelta> コントロール
In SharePoint, the minimal download strategy feature manages which specific content on a master page to refresh before the page renders. 戦略を有効にすると、マスター ページのタグで <SharePoint:AjaxDelta>
ラップされたコンテンツ プレースホルダーに関連付けられているコンテンツが、ページがレンダリングされる前に更新されます。 Conversely, content placeholders not wrapped in <SharePoint:AjaxDelta>
tags does not render when the minimal download strategy is enabled.
ダウンロード最小化戦略は、中央のサイト管理を通して、または、SharePoint のクライアント側オブジェクト モデル (CSOM) を使用して、有効または無効にすることができます。 この機能は、EnableMinimalDownload プロパティを使用してアクティブにすることができます。
詳細については、「ダウンロード最小化戦略の概要」を参照してください。 ダウンロード最小化戦略とうまく連動するようにマスター ページを最適化する方法の詳細については、「MDS のための SharePoint コンポーネントの変更」を参照してください。
ダウンロード最小化戦略機能は、SharePoint チーム サイトでは既定で有効になっており、SharePoint 発行サイトと、発行が有効な状態の SharePoint チーム サイトでは既定で無効になっています。
seattle.master に基づいてカスタム マスター ページを作成する
リモート プロビジョニングを使用してテーマなどのサイト ブランド化要素をサイトにプロビジョニングしたり、CSS または JavaScript を使用して要素またはページ コントロールの表示/非表示を切り替えたりすることができます。 マスター ページをカスタマイズすることによって、ページ構造に対する制御のレベルが向上します。 カスタム マスター ページを作成するときに、既定のマスター ページを編集してから、既定の名前 (seattle.master など) を使用して保存しないでください。 代わりに、変更する既定のマスター ページのコピーを作成して、その名前を変更します。
重要
継続的なサポートのコストと保守の長期的な影響が懸念されるため、新しいマスター ページの構造は変更しないことをお勧めします。 ヘッダー内の色の変更、ページの特定の要素へのカラー背景の追加、サイト ロゴの表示/非表示など、構造に影響しない変更を、ブランド化をサポートするマスター ページに加えることができます。 使用している既定のマスター ページに、作成しているページに追加する構造要素 (フッターなど) が含まれていない場合は、別のすぐに使えるマスター ページを使用してください。
カスタム マスター ページ上で一貫性を維持するには、既存のコーディング パターンに従います。 たとえば、表を使用するページの領域では、表を使用することによってコーディング パターンを補強します。 <DIV>
タグまたは HTML5 が使用される領域では、<DIV>
タグまたは HTML5 を使用してすべてのカスタム コードを一致させます。 長期的に見れば、これにより、作成する必要のあるカスタム マスター ページの保守が容易になるため、コストが抑えられます。