Как вы получаете имя текущего виртуального каталога, используя ASP Classic? - PullRequest
2 голосов
/ 23 января 2009

Как вы получаете имя текущего виртуального каталога, используя ASP Classic? В ASP.NET вы можете использовать Request.ApplicationPath, чтобы найти это.

Например, допустим, у вас есть такой URL:

http://localhost/virtual_directory/subdirectory/file.asp

В ASP.NET Request.ApplicationPath вернет / virtual_directory

Ответы [ 2 ]

6 голосов
/ 28 января 2009

Вы можете получить виртуальный путь к файлу от одной из нескольких серверных переменных - попробуйте либо:

  • Request.ServerVariables("PATH_INFO")
  • Request.ServerVariables("SCRIPT_NAME")

(но не INSTANCE_META_PATH, как предлагалось ранее - это дает вам мета базовый путь, а не виртуальный путь, который вы ожидаете).

Любая серверная переменная предоставит вам виртуальный путь, включая любые подкаталоги и имя файла - с учетом вашего примера вы получите «/virtual_directory/subdirectory/file.asp». Если вам нужен только виртуальный каталог, вам нужно будет удалить все после второй косой черты, используя любой метод, который вы предпочитаете для извлечения каталога из пути, например:

s = Request.ServerVariables("SCRIPT_NAME")
i = InStr(2, s, "/")
If i > 0 Then
    s = Left(s, i - 1)
End If

или

s = "/" & Split(Request.ServerVariables("SCRIPT_NAME"), "/")(1)
0 голосов
/ 23 января 2009

Попробуйте использовать: Request.ServerVariables ("SCRIPT_NAME")

или попробуйте использовать Request.ServerVariables ("INSTANCE_META_PATH"), если это не работает для вас.

Чтобы увидеть список других серверных переменных, пройдите по этой ссылке:

http://www.w3schools.com/asp/coll_servervariables.asp

...