很抱歉,如果这个问题在其他地方得到解答,但我尝试搜索多个页面但未成功。
所以我有一个我在所有页面中使用的包含文件(侧边栏)。
Default.asp
Products.asp
Salary/Survey.asp
inc/sidebar.asp (this is the included file)
现在在sidebar.asp
内我有Salary/Survey.asp
,我可以简单地使用href='Salary/Survey.asp'
并且可以正常工作。但当我在页面Survey.asp
上时,写href='Salary/Survey.asp'
将成为Salary/Salary/Survey.asp
。我知道必须正确使用../Salary/Survey.asp
,但它不适用于根级页面。
我无法使用root relative
/Default.asp
和/Salary/Survey.asp
,因为我正在为别人的项目工作,我不知道他的目录结构,因此我只能选择{{ 1}}路径。
希望这一点很清楚,有人帮助我。
谢谢!
答案 0 :(得分:2)
我们通过以下方式解决了这个问题...
例如:
然后,需要使用<%= strRelativePath %>的相对路径的所有链接的前置问题。
答案 1 :(得分:1)
you need to get write this after the that - Salary/Survey.asp
You can get the virtual path to the file from one of several server variables - try either:
Request.ServerVariables("PATH_INFO")
Request.ServerVariables("SCRIPT_NAME")
服务器变量将为您提供虚拟路径,包括任何子目录和文件名 - 根据您的示例,您将获得/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
or:
s = "/" & Split(Request.ServerVariables("SCRIPT_NAME"), "/")(1)
答案 2 :(得分:0)
基本上,如果您的侧边栏可以包含在不同文件夹中的程序中,唯一的“简单”方法是使用您提到的绝对路径。
你说不能使用它,所以我会想到不同的方式......