2011-04-22 85 views
0

我嘗試在客戶端運行的html中使用標籤。如何在IIS7中獲取虛擬應用程序或虛擬目錄的根目錄?

在我的IIS7中有一個虛擬應用程序調用「testsite」。我必須調用「localhost/testsite」才能訪問此網站。

假設我在「testsite/images」中有1個圖像,我想從根路徑獲取圖像。

例如:

<img src="/image/image1.jpg" /> 

但是圖像的顯示在瀏覽器的路徑是「本地主機/圖片」應該是「本地主機/測試網站/圖像」。 ?

我該怎麼辦?如何配置IIS7,讓他們看到一個虛擬應用程序成爲該網站的根目錄?

附加:假設我的HTML是在數據庫和它有很多的

<img src=/image/[imagename]> 

我把它加至文本控件的屬性顯示這樣的文字,所以它不能使用RUNAT =「服務器」在img標籤。

什麼是最好的解決方案,以取代我的數據庫中的img標籤的src屬性,並顯示在它的ASP.Net頁面。

回答

1

使用~/指向Web應用程序的根目錄。這隻會在服務器端控制工作 - 所以你需要將你的圖片標籤更改爲:

<img src="~/image/image.jpg" runat="server" /> 

或者,只是輸出值的屬性:

<img src="<%:Page.ResolveUrl("~/")%>image/image.jpg" /> 

更新:

由於您在文字控件中輸出,因此您可以在設置控件的Text屬性時簡單地使用Page.ResolveUrl("~/"),類似於替代方法我已經展示過了。

+0

如何在控件中使用。因爲我的html在數據庫中,我使用Literal來顯示該HTML。 – 2011-04-23 06:35:17

+0

@Noppol Pilukruangdet - 你不能。你真的應該把這個「細節」添加到你的問題中(你用一個文字控件輸出)。答案更新瞭解決方案。 – Oded 2011-04-23 06:41:51

+0

我使用文字控制來顯示有很多標籤的整個HTML。我無法使用Code Behind將Page.ResolveUrl替換爲Text屬性。 – 2011-04-23 06:59:06

2

你可以試試:

<img src="<%=Page.ResolveUrl("~")%>/image/image1.jpg" /> 

(假設你使用ASP.NET)

+1

您需要在'<%%>'後面加一個'/'。 – Oded 2011-04-22 19:25:45

0

,我可以看到你使用的HTML標籤,更簡潔的方法是使用基礎標籤在頭部分因此你不需要在每個html標籤中重複服務器代碼。

<base href="<%= Context.Items["baseURL"] %>" />,我從web.config中讀到這個。

<base href="<%=Page.ResolveUrl("~")%>" />

現在,你可以簡單的使用<img src="/image/image1.jpg" />

我懷疑,當網站是一個子目錄內承載Page.ResolveUrl("~/")會工作。