0

Classic ASP でライブ環境とテスト環境を持つアプリケーションを作成しています。これらの用途はたくさんあります。ただし、インクルードは ASP の前に処理されるため、単純に次のように言うことはできません。

<%
    if <Test Environment Condition> then
%>
        <!-- #include virtual="/myAppTest/start.asp" -->
<%
    else
%>
        <!-- #include virtual="/myApp/start.asp -->
<%
    end if
%>

これは基本的に両方のインクルードを両方の環境にロードし、一方の環境に不正な関数または類似のものがある場合、両方の環境でエラーをスローします。環境を分離する唯一の方法は、URL (/myApp または /myAppTest のいずれか) のみを含む 1 つの仮想ディレクトリを用意することです。この URL は、たとえば jQuery .load URL で使用されます。私が見ることができる唯一の方法は、JS を介してコンテンツを動的にロードすることです。

もう 1 つの回避策は、1 つのテスト用サーバーと 1 つのライブ用サーバーの 2 つのサーバーに同じ仮想ディレクトリを設定することです。ただし、理由が複雑すぎて説明できない理由により、このオプションは窓の外にあります。

JS を介してコンテンツを動的にロードする最初の方法は最善の方法ですか、それとも何か不足していますか?

前もって感謝します。

よろしく、リチャード

4

2 に答える 2

1

あなたが言及した理由から、サーバーサイドインクルードを正確に使用しないでください。

代わりに、 global.asaファイルで単一のアプリケーション レベル変数を設定し、そこで「環境」を定義できます。例えば:

Application("Environment") = "Local"

次に、適切な機能を「含める」には:

Server.Execute(Application("Environment") & "_functions.asp")

Local_functions.aspファイルとProd_functions.aspファイルがあれば、そのアプリケーション変数に基づいて適切な関数を含めることができます。

于 2013-02-03T11:30:19.580 に答える
1

vdir ではなく、別の Web サイトでアプリをセットアップします。

于 2013-02-03T00:17:29.797 に答える