在ASP中使用include来包含文件,一般的有以下两种方式:
<!--#include file="相对路径"-->
<!--#include virtual="根目录下的绝对路径"-->
这两种包含文件的方式,其实都没有明确一点,那就是被包含的文件是否可以带参数。为什么要提到这个问题呢,我们来看一个需求。
一个网站,我们往往都包含一个统一的头部文件,假设是top.asp。但我们不同页面希望有一个不同的title,这是为了SEO着想。于是我们在top.asp里面做了如下判断:
<%
id=trim(Request.Querystring("id"))
select case id
case 1
title="title1"
case 2
title="title2"
'....
end select
'.....
%>
所以,我们在包含top.asp的时候,我们想告诉当前是哪个页面,以便于实现不同页面有不同的title。
郁闷的是,<!--#include file="top.asp?id=1"-->,这个用法会报错,即ASP不允许包含文件时带参数。
那有没有什么办法来解决这个问题的,有的。把top.asp里面加一个函数框起来,即:
<%
sub top(id)
'下面这句就注释掉了
'id=trim(Request.Querystring("id"))
select case id
case 1
title="title1"
case 2
title="title2"
'....
end select
'.....
end sub
%>
在包含top的时候,直接包含top.asp文件,即<!--#include file="top.asp"-->。但还没有完,我们得再调用一下top函数,即:
<!--#include file="top.asp"-->
<%
call top(1)
这样,就实现我们想要的效果了。