gpt4 book ai didi

asp-classic - 在asp classic中获取完整路径的虚拟路径

转载 作者:行者123 更新时间:2023-12-04 05:22:15 24 4
gpt4 key购买 nike

如何在 ASP 经典中获取完整路径的虚拟路径。请注意,完整路径可能位于虚拟目录下,因此很简单

virtPath = Replace(fullPath, Server.MapPath("/"), "") 

方法行不通。

编辑:为了澄清,下面是一个例子
  • 完整的 Windows 文件路径(已知):
    \\MyServer\MyShare\Web\Site\Logs\Test.txt
  • 我的网站有一个虚拟目录
    日志 指向 \\MyServer\MyShare\Web\Site\Logs\ .
  • 虚拟路径(未知):/Logs/Text.txt
  • Http 路径(未知,需要):
    http://Site/Logs/Test.txt
  • 代码位于主应用程序的 asp 页面中,而不是在任何虚拟目录下。它位于与相关文件不同的服务器上。
  • IIS 6.0

    如何从完整文件路径中找到虚拟路径?
  • 最佳答案

    如果有人感兴趣,Anthony Jones 的回答向我展示了始终获取应用程序相对根的方法。因此,如果您在 http://example.com 上有一个站点和本地开发等效项 http://localhost/example ,你可以用这个函数找到你的根:

    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

    然后,您可以像这样调用它以获取根路径:
    ToRootedVirtual("/")

    哪个将返回:
  • /在 example.com
  • /example/在 localhost/example

  • 您也可以不使用斜线使用它:
    ToRootedVirtual("")

    关于asp-classic - 在asp classic中获取完整路径的虚拟路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/888147/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com