2012-09-26 221 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>