Windows Azure Web サイト (WAWS) のサーバー側インクルード (SSI) 機能
このポストは、3 月 26 日に投稿された Server Side Includes (SSI) in Windows Azure Web Sites (WAWS) の翻訳です。
編集メモ : 今回は、 Windows Azure Web サイトチームでプログラムマネージャーを務めるErez Benariによる記事をご紹介します。
サーバー側インクルード (SSI) 機能のサポートに関して、Windows Azure Web サイト ユーザーの皆様からよくいただくご質問に、「 .htm など、既定の構成とは異なる拡張子では、SSI は動作しないのか?」というものがあります。サポート フォーラムをご覧の方はご存知のとおり、数か月前まではこの機能はサポートされていませんでした。しかし、今回 Windows Azure Web サイトに新たに ServerSideIncludeModule が実装され、現在では完全にサポートされています。
SSI は、あるファイルのコンテンツを他のファイルに簡単に埋め込むための機能で、Web アプリケーションで広く利用されています。あるページを他のコンテンツ内に埋め込むのと同様に簡単に利用できますが、それ以上に、何らかのコードを含むファイルを他の複数のファイルから呼び出すような、モジュール化された Web アプリケーションを構築する際に頻繁に使用されています。たとえば、下に示すサンプル Web アプリケーションの一部には、複数のステートメントが含まれています。
既定では、Windows Azure Web サイトの SSI は *.stm 、 *.shtm、 *.shtml というファイル拡張子でのみ動作するように構成されています。しかし、これを他の拡張子のファイルでも動作させたいという場合もあります。根本的には、これは正しいか正しくないかという問題ではなく、Web アプリケーションの設計にかかわる問題であり、ユーザーが既定の構成とは異なる拡張子を持つアプリケーションを実行する必要があるならば、Windows Azure Web サイトで既定の構成を拡張してこれをサポートする必要があります。
拡張子を追加する方法は簡単で、ちょっとした Web.Config ファイルをご自身のサイトで作成するだけで可能です。次のサンプルは .htm ファイルのサポートを追加するもので、この構成により SSI モジュール ハンドラーへの追加登録が行われます。次のような書式で記述します。
注: 現在ご自身の Web サイトに web.config ファイルが存在しない場合、このコードをすべてテキスト ファイルにコピーして web.config という名前で保存し、Web Matrix を使用するか FTP (英語) 経由で Web サイトにアップロードできます。web.config ファイルが存在する場合は、既存の system.webServer セクションに上記の <handlers> セクションを追加します。system.webServer セクションが存在しない場合は、既存の configuration セクションに <system.webServer> 全体を追加します。
SSI のさらに詳しい情報については、こちらのガイド (英語) をご参照ください。
Cristhian Uribe、Erez Benari