通常、サイト内のデータは、aspx ページを含めて、全てコンテンツデータベースに格納されています。 しかしながら、サイトのページである default.aspx や、リストやライブラリのビューやフォームページである aspx ページについては、Web パーツ ページとして構成されている関係で、実際にはどれも同じ内容になります。
そこで、パフォーマンスとデータストアの観点で、コンテンツデータベースにはファイルのエントリだけでファイル内容の実体は格納されずに、ファイルサーバー上のテンプレートフォルダ内のファイルを読み込んで、メモリ上に展開されるアーキテクチャとなっています。 これにより、ゴーストページの状態でのテンプレートの aspx ページの変更結果は、作成済みのサイトに即時に反映されます。
この状態で FrontPage 2003 や Web フォルダアクセスにて編集操作を行うと、この時初めてファイル内容がデータベース内に格納される形になります。 なお、ブラウザを通しての設定変更はあくまでも Web パーツの設定の変更なので、aspx ページに対する操作にはなりません。
SharePoint の SDK 内にも簡単な説明が記載されています。
・Guidelines for Templates and Definitions
<http://msdn.microsoft.com/library/en-us/spptsdk/html/tsovGuidelinesCustomTemplates_SV01018815.asp>
・Introduction to Templates and Definitions
<http://msdn.microsoft.com/library/en-us/spptsdk/html/tsovIntroTemplates_SV01015722.asp>
→ Ghosting のトピック
プログラムにて、ゴーストページの状態を確認することも出来るようです。 こちらに、サンプルコードが紹介されています。
・Finding Ghosts: Programmatically Determining Ghosted/Unghosted State
<http://blogs.msdn.com/ryanrogers/archive/2005/03/22/400661.aspx>
tags: SharePoint