Server.Execute 与 #include 交叉使用时路径问题

作者:vkvi 来源:ITPOW(原创) 日期:2009-2-13

前面一些文章谈了关于 Server.Execute 调用 或 #include 包含时的路径问题,这里来个总结。为便于叙述,我们把“Server.Execute 调用”简称“调用”,把“#include 包含”简称“包含”。

  • 有 A.asp、B.asp、C.asp 三个文件,目录结构如下:
    • /A.asp
    • /B/B.asp
    • /B/C/C.asp
  • A.asp 调用或包含 B.asp
  • B.asp 调用或包含 C.asp
  • C.asp 中有一句代码 Server.MapPath("D.asp")

有两个问题:

  • 在调用或包含时,B.asp 用什么样的相对路径去调用或包含 C.asp?
  • D.asp 最终计算出来与哪个文件同目录?

结果是这样的:

  • 只要 B.asp 是调用 C.asp,路径就是 B/C/C.asp,不论 A.asp 对 B.asp 是调用还是包含。
  • 只要 B.asp 是包含 C.asp,路径就是 C/C.asp,不论 A.asp 对 B.asp 是调用还是包含。
  • 不论 A.asp、B.asp、C.asp 之间调用还是包含关系,计算出来的 D.asp 路径最终都与 A.asp 同目录。
相关文章