「#include virtual」・・SSIを仕様したサイト構築(ASPの例)
ASP・VB・Excel (24 items)
2004年06月21日
・SSI(Server Side Include)を利用した、ASPのサイト構築例
ASPは、JSPやPHPと同様にHTML内にASPコーディング(VB Script)を埋め込む事で、
動的なコンテンツを作成する事が出来る。
サイト構築のコーディング構造としては、
ASPファイルにHTMLタグを埋め込み、
可変(動的に変わる)の部分にASPコーディングを埋め込む事で可能であるが、
サイト全体的には、
各HTML共通の固定部分(ヘッダーやフッター)があるのも多い。
その固定部分を各ASPファイルに持つ事は、後のメンテ的にも非常に賢くない。
そこでSSIを使用し、
処理はASPファイル、画面表示はHTMLファイルで行う事で、
画面上、動的な部分と固定的な部分を別ファイルで持つ事が出来る。
つまりSSIを使用する事で、
動的且つメンテもしやすい、ASPのサイト構築構造が可能となる。
以下に、構造例を記す。
ASPは、JSPやPHPと同様にHTML内にASPコーディング(VB Script)を埋め込む事で、
動的なコンテンツを作成する事が出来る。
サイト構築のコーディング構造としては、
ASPファイルにHTMLタグを埋め込み、
可変(動的に変わる)の部分にASPコーディングを埋め込む事で可能であるが、
サイト全体的には、
各HTML共通の固定部分(ヘッダーやフッター)があるのも多い。
その固定部分を各ASPファイルに持つ事は、後のメンテ的にも非常に賢くない。
そこでSSIを使用し、
処理はASPファイル、画面表示はHTMLファイルで行う事で、
画面上、動的な部分と固定的な部分を別ファイルで持つ事が出来る。
つまりSSIを使用する事で、
動的且つメンテもしやすい、ASPのサイト構築構造が可能となる。
以下に、構造例を記す。
(1)WebサーバーのSSIの設定を確認
SSIを使用する場合、
Webサーバーの設定が”SSIを有効にする”となっているか確認する必要がある。
”無効”の場合は、「<!--#include virtual 〜 」と記述しても、
単にコメントとして解釈される。
(2)includeコマンド
<!--#include file = "test.html"-->
fileオプションは、現在のASPファイルからの相対位置指定。
<!--#include virtual = "/common/common.asp"-->
virtualオプションは、Webサーバーのドキュメントルートからの絶対位置指定。
※includeするのは、html・aspどちらでも可能。
(3)ASPコーディング
基本的にASPファイル内では、処理のみを記述し、HTMLタグなどは埋め込まない。
[1]処理上、共通的な処理がある場合は、
別ASPファイルに共通関数として持たせる事が出来るが、
その場合、共通関数ASPファイルの参照宣言を、includeコマンドで行う。
[2]処理を行った後、画面表示自体はHTMLで行う。
このincludeしたHTMLファイル内でも、ASP変数やASPコーディングを行う事が可能である。
★main.asp
★main.html
※ここで仮に、
ASPファイルがSSLルート配下、HTMLファイルがドキュメントルート配下という具合に、
ASPとHTMLがWebサーバー上、別フォルダにある場合でも、この構造は有効である。
上記で言うと、
main.aspがSSLフォルダ配下で、main.htmlがドキュメントルート配下であっても、
「<!--#include virtual」指定する事で、
main.aspからは、ドキュメントルート配下のmain.htmlファイルが参照できる。
SSIを使用する場合、
Webサーバーの設定が”SSIを有効にする”となっているか確認する必要がある。
”無効”の場合は、「<!--#include virtual 〜 」と記述しても、
単にコメントとして解釈される。
(2)includeコマンド
<!--#include file = "test.html"-->
fileオプションは、現在のASPファイルからの相対位置指定。
<!--#include virtual = "/common/common.asp"-->
virtualオプションは、Webサーバーのドキュメントルートからの絶対位置指定。
※includeするのは、html・aspどちらでも可能。
(3)ASPコーディング
基本的にASPファイル内では、処理のみを記述し、HTMLタグなどは埋め込まない。
[1]処理上、共通的な処理がある場合は、
別ASPファイルに共通関数として持たせる事が出来るが、
その場合、共通関数ASPファイルの参照宣言を、includeコマンドで行う。
[2]処理を行った後、画面表示自体はHTMLで行う。
このincludeしたHTMLファイル内でも、ASP変数やASPコーディングを行う事が可能である。
★main.asp
<%
Option Explicit
%>
<!--#include virtual = "/common/common.asp"-->・・・[1]
<%
〜 各処理 〜
・・・・・・
・・・・・・
%>
<!--#include virtual = "/html/main.html"-->・・・[2]
★main.html
<html>
<head>
<body>
<%= funcMakeMenu() %>
<table>
<tr>
<td><%= strName %>
・・・・・・
・・・・・・
※ここで仮に、
ASPファイルがSSLルート配下、HTMLファイルがドキュメントルート配下という具合に、
ASPとHTMLがWebサーバー上、別フォルダにある場合でも、この構造は有効である。
上記で言うと、
main.aspがSSLフォルダ配下で、main.htmlがドキュメントルート配下であっても、
「<!--#include virtual」指定する事で、
main.aspからは、ドキュメントルート配下のmain.htmlファイルが参照できる。
前の記事 次の記事
この記事に関連した過去記事一覧は画面下にあります。
Comments
名無し wrote:
ASPとHTMLを別のサーバに配置することは可能でしょうか?つまり、ASPが、別のサーバに配置されたHTMLをincludeするということです。2005年05月31日 13時22分16秒
ossi wrote:
上に書いた方法では、おそらく無理ではないでしょうか。。2005年06月03日 15時46分17秒
ぐぐったら引っかかったので備忘録がわりに wrote:
可能。IISとServerバージョンによって具体的な設定手順は異なるが、ローカルマシン物理パスで作成した仮想ディレクトリを用いて #includeディレクティブするのと同じように、ネットワーク上の共有を物理パス(コンテンツのパス)に使って、仮想パス(エイリアス)を作成して、aspスクリプトで呼べばよい。IISで「サイト」(の該当するaspアプリケーション)が配置されているマシンに、初回のinclude文がロードされるタイミングでプリコンパイルされてのメモリ上へロードされる。
workgroup上の共有と、AD上の共有ではIISの時期によってはユーザ認証が異なるらしい。AD・UNC仮想ディレクトリのときは、IISマネージャからGUIで設定できないパススルー認証があるらしいので(win2000)
http://support.microsoft.co...
このあたり。
分散したアプリケーションが配置できなければ、ステージングの実現やメンテナンス中表示が難しくなってしまうので、毎回スクリプト書き換えなんてやってられない。サーバ側に機能があると読みを入れるのが妥当。
2009年09月05日 15時24分09秒
Add Comments
Trackback
トラックバックはありません
Trackback URL
http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=83
