C. *_*oss 8 server.mappath virtual-path asp-classic
如何在ASP classic中获取完整路径的虚拟路径.请注意,完整路径可能位于虚拟目录下,因此过于简单
virtPath = Replace(fullPath, Server.MapPath("/"), "")
Run Code Online (Sandbox Code Playgroud)
方法不起作用.
编辑:为了澄清,下面是一个例子
IIS 6.0
如何从完整文件路径中找到虚拟路径?
sho*_*nik 14
如果有人感兴趣,安东尼琼斯的回答告诉我如何一致地获得应用程序的相对根.因此,如果您在http://example.com上有一个站点,并且在http:// localhost/example上有一个本地开发,则可以使用此函数找到您的root:
Function ToRootedVirtual(relativePath)
Dim applicationMetaPath : applicationMetaPath = Request.ServerVariables("APPL_MD_PATH")
Dim instanceMetaPath : instanceMetaPath = Request.ServerVariables("INSTANCE_META_PATH")
Dim rootPath : rootPath = Mid(applicationMetaPath, Len(instanceMetaPath) + Len("/ROOT/"))
ToRootedVirtual = rootPath + relativePath
End Function
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样调用它来获取根路径:
ToRootedVirtual("/")
Run Code Online (Sandbox Code Playgroud)
哪个将返回:
您也可以在没有斜线的情况下使用它:
ToRootedVirtual("")
Run Code Online (Sandbox Code Playgroud)
尽管可能有更好的方法,但我总是通过创建一个配置变量来实现此目的,在该变量中手动指定不属于虚拟路径的根路径。这是因为您不知道该站点是否会以 root 身份部署在根 Web 中的文件夹下,或者部署在虚拟目录中。