2012-10-03 47 views
0

在我的webapp中,我有一個文件夾Views。在這個文件夾中有幾個.aspx頁面。我不直接在webapp中使用渲染內容,而是使用ajax在webapp根目錄下的主aspx頁面中請求內容。ajax aspx頁面中包含的圖像的相對路徑

現在,當我引用圖像時,「images/image.png」將起作用,因爲圖像引用存在於根上的aspx頁面中。當我將其更改爲「/images/image.png」時,由於根由虛擬IIS文件夾確定,因此這將不起作用。

我怎樣纔能有一個乾淨的參考例如「/images/image.png」?

回答

0

首先可能是最優雅的,請在服務器上運行的元素,並使用根reletive網址:

<img src="~/images/image.png" alt="image" runat="server" /> 

這會自動翻譯你的src價值爲路徑,將您當前的位置解析。但是,有一個警告。如果你這樣做,其上包括網頁,asp.net可以在這裏創建一個不正確的值,因爲如果你是一個目錄下就可以演變成

<img src="../images/image.png" alt="image" /> 

。因此,如果您將此結果包含在應用程序根文件夾的頁面中,那麼您的值可能不正確。我還沒有看到解決這個問題的好方法。但是,如果文件不存在,它會顯示警告。

或者,您可能要手動設置的根路徑這樣的網頁:

<img src="<%=Request.ApplicationPath %>/images/image.png" alt="image" /> 

這將變成一個路徑始終從站點的根來:

<img src="/AppPath/images/image.png" alt="image" /> 

顯然,這有點冗長。此外,如果引用的文件不存在,您將無法看到任何警告,因爲它將被動態構建。