是否还有人使用Classic ASP VBScript并知道是否可以在启动时验证所有包含的文件是否存在?这是一个大型项目,需要进行一些重构,但在将文件移动到子文件夹之前,我希望进行一些测试,以确保所有包含仍然指向正确的文件。
答案 0 :(得分:2)
不是我曾尝试过的东西,这就是为什么
在Classic ASP中,您可以有两种类型的#include
SSI指令;
相对路径包含,它们从当前目录的路径。
<!-- #include file = "subfolder/file.asp" -->
虚拟路径包含,它从包含Web应用程序的Root获取其路径。
<!-- #include virtual = "/toplevelfolder/subfolder/file.asp" -->
如果您在Web应用程序中设置了Enable Parent Paths
,则在使用../
时也可以使用#include file
遍历父文件夹。
考虑到这一切,请考虑一下你必须做些什么。
首先,您需要识别所有可能使用循环迭代Web应用程序并查找#include
文件然后使用正则表达式拉出的.asp
指令路径。然而,有并发症。
file
virtual
和#include
类型
GetAbsolutePathName()
并验证文件是否存在。virtual
includes还可以指向仅存在于IIS中且指向另一个物理位置的虚拟目录(不必位于Web应用程序的文件夹结构中) 。这可能是所有诚实中最大的复杂因素。