2012-09-26 170 views
0

这是我非常困惑的事情,希望我能在这里解释得很好。相对文件路径

我有一个位于c:/rootFolder/common/js/jsfile.js的js文件。在这个文件中我使用AJAX功能调用在rootFolder,称为update.aspx一个文件,内容如下:

... 
... 
httprequest.open("GET", "update.aspx", true); 
... 

我在会调用这个函数的文件夹的多层次的许多文件。如果一个文件c:/rootFolder/abc/abc.aspx调用该函数,那么上述AJAX是:

httprequest.open("GET", "../update.aspx", true); 

所以我需要一种方法,这样我可以使路径相对更容易从调用该函数任何aspx。我使用Cookie会话此项目为好,因此该URL会像

的http://本地主机/ S(abssadasdadd ...

+0

为什么你不能通过在'/'前添加你的请求来使用绝对路径?就像'httprequest.open(“GET”,“/update.aspx”,true);' –

+0

试过,但不起作用。 – cSharpDev

+0

当你尝试时会发生什么? –

回答

0

过了一会搜索我开始怀疑,应该有什么该HTML或服务器可能会寻找为基础。因此,我通过在页面的顶部加入碱标签,特别是在HEAD标签解决了这个问题。

<base href="www.abc.com" /> 

不过,我使用Cookie会话这将会话ID放在URL中,我如何将它添加到基础上(否则,它将不起作用)?下面的简单答案:

string baseurl= "http://" + servername + "/(S(" + HttpContext.Current.Session.SessionID + "))"; 

如果你有一个主文件,你可以放置在头底座:

<base href="<%=baseurl%>" /> 

如果这些在地方,你会很容易打电话给你的CSS和JS文件:

<link type="text/css" href="common/css/style.css" rel="stylesheet" /> 
<script type="text/javascript" src="common/js/jscript.js"></script>