2011-05-23 63 views
0

有時我們需要把不同的/或〜/如爲了使指根後綴之間的鏈路前綴「〜/」和「/」

<script type="text/javascript" src="/scripts/jquery-1.5.1.min.js"></script> 
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" /> 

這就是我所知道從菲爾

〜/是無效的,除非您的控制/元素上有runat屬性。 '/'本身指定給瀏覽器從根目錄查看,所以如果你鏈接到www.mysite.com/product/view.aspx中的'/css/main.css',它將在www中查找css文件.mysite.com/CSS/main.css的。在runat-server中使用'〜/'時,它會在運行時找到目錄的路徑,所以在'〜/ css/main.css'的例子中,呈現的URL看起來像'../css/main.css',因爲它需要在找到目錄'css'之前將目錄放回1。 (希望是有道理的) - Phill How to include jquery in masterpage header without path problems?

但是,正如我已經嘗試,即使我使用/ Firefox仍指代../../而不是靜態路徑。 也,我不清楚如何正確使用它,哪一個使用哪種情況。

回答

3

/在相對URL的開始備份到主機的根。

相對URL中的前綴~/只能由ASP.NET進程解釋,這就是爲什麼它只適用於runat=server。輸出時將其轉換爲指代ASP.NET應用程序的根URL。很多時候,這與主機名的根目錄是一樣的,但如果運行代碼的ASP.NET應用程序是IIS中的虛擬目錄而不是它自己的站點,則將與不同。

如果您只需要刪除一個目錄級別,則可以使用「../」作爲前綴而不是「/」或「〜/」。