我在虚拟目录中使用ASP脚本而不是顶级(根)级应用程序,我不得不编写一些小脚本来为每个页面提供正确的CSS路径以及其他包含在根目录下的文件。所以两个层次的深度必须是“......”
这与我所包含的页眉和页脚模板混淆。
是否有更简单的方法来管理包含标题的嵌套子文件夹的相对路径?
使用Win2k3服务器和IIS6 ASP 3.5在64位进程中运行32位
答案 0 :(得分:1)
如果您在每个页面上都包含一个标准的包含文件,那么您可以执行与我在webfodder工作时所做的相似的操作。
每个页面都包含一个名为info.asp的文件。在info.asp内部,我们对网站所需的所有全局变量进行Dim'd并设置。我们对一个名为strRelativePath的变量进行了调暗,并将其设置为info.asp中的空字符串。
然后在我们调用CSS,Header和Footer包含(也是xxxx.asp文件)之前的每一页上,我们都适当地设置了strRelativePath。
strRelativePath =“.. \”
strRelativePath =“.. \ .. \”
然后我们将确保所有对图像的引用以及任何使用strRelativePath变量的引用。例如:
< img src =“<%= strRelativePath%> images \ myimage.jpg”>
编辑:根据OP的请求 - 添加了info.asp文件的内容
<%
Option Explicit
Response.Buffer = true
Response.charset="ISO-8859-1"
'==============================================================
'=== Declarations
'==============================================================
Dim strBodyTag
Dim strRelativePath
Dim strFqurl
Dim strSFqurl
Dim strReferer
Dim strServerName
Dim strMailServer
Dim strWebDSN
'==============================================================
'=== Initilization
'==============================================================
strBodyTag = "bgcolor='#FFFFFF' topmargin='4' leftmargin='4' rightmargin='4' bottommargin='4' marginheight='0' marginwidth='0'"
strRelativePath = ""
strReferer = trim(lcase(Request.ServerVariables("HTTP_REFERER")))
strServerName = lcase(Request.ServerVariables("SERVER_NAME"))
strMailServer = "localhost" 'DO NOT CHANGE FROM "localhost"
Select Case strServerName
Case "dev"
strFqurl = "http://dev/websitegoeshere/" 'INCLUDE TRAILING SLASH
strSFqurl = "https://dev/websitegoeshere/" 'INCLUDE TRAILING SLASH
strWebDSN = "Provider=SQLOLEDB;server=DEV\SQLEXPRESS;uid=DBUserId;pwd=DBPassword;database=DBName"
Case Else 'PRODUCTION
strFqurl = "http://www.websitegoeshere.com/" 'INCLUDE TRAILING SLASH
strSFqurl = "https://www./websitegoeshere.com/" 'INCLUDE TRAILING SLASH
strWebDSN = "Provider=SQLOLEDB;server=xxx.xxx.xxx.xxx;uid=DBUserId;pwd=DBPassword;database=DBName"
'Note: xxx.xxx.xxx.xxx = IP Address for Database
End Select
'==============================================================
'=== Assigns a name to each page to determin title, etc.
'==============================================================
Dim strScriptName
Dim strPageTitle
Dim strMetaDescription
Dim strMetaKeyWords
Dim strHeaderText
strScriptName = Request.ServerVariables("Script_Name")
strScriptName = LCase(Mid(strScriptName,InStrRev(strScriptName,"/")+1))
strPageTitle = "Default Page Title Goes Here"
strMetaDescription = "Default Meta Description Goes Here"
strMetaKeyWords = "Default Keywords Go Here"
strHeaderText = "Default Header Text Goes Here"
%>