我正在编写一个应用程序,它将在Classic ASP中具有实时和测试环境。这些用途包括很多。但是,因为包含是在ASP之前处理的,所以我不能简单地说出如下内容:
<%
if <Test Environment Condition> then
%>
<!-- #include virtual="/myAppTest/start.asp" -->
<%
else
%>
<!-- #include virtual="/myApp/start.asp -->
<%
end if
%>
这基本上会将BOTH包含加载到BOTH环境中,如果在一个环境中存在格式错误的功能或类似的东西,则会在BOTH环境中抛出错误。我可以看到,分离环境的唯一方法是让一个虚拟目录只包含一个URL(/ myApp或/ myAppTest),例如,这个URL用于jQuery .load URL。我能看到的唯一前进方法是通过JS动态加载内容。
另一种解决方法是在2台服务器上拥有相同的虚拟目录,一次测试,一次测试。然而,由于原因太复杂且可能太过机密而无法解释,这个选项就在窗外。
是第一种方法,通过JS动态加载内容,最好的方法还是我错过了什么?
提前致谢。
此致 理查德
答案 0 :(得分:1)
将应用程序设置在不同的网站下,而不是在vdir下。
答案 1 :(得分:1)
由于您提到的原因,请不要使用服务器端包含。
相反,您可以在 global.asa 文件中设置单个应用程序级别变量,并在其中定义&#34;环境&#34;。例如:
Application("Environment") = "Local"
然后到&#34;包括&#34;适当的功能:
Server.Execute(Application("Environment") & "_functions.asp")
拥有 Local_functions.asp 和 Prod_functions.asp 文件后,您可以根据该应用变量添加正确的功能。