2010-08-19 89 views
0

我工作的多租戶應用程序,所以我有很多動態的子域:ASP.NET MVC:顯示圖像的子域

user1.example.com user2.example.com

etc

它很好,但有一個問題,但。圖像不顯示。

<img src="/images/logo.png" /> 

將顯示在example.com,但它不會在user1.example.com工作

我當然可以採用如下方案:

<img src="http://example.com/images/logo.png" /> 

但我想如果可能的話,會有更優雅的東西。

+0

你給第一個示例使用相對URL;它所服務的域名應該沒有區別,因爲沒有指定域名。每個子域是否映射到不同的網站根目錄? – 2010-08-19 13:35:19

+0

@Mark B,很難說...是的,只有一個IIS站點,並且所有子站點指向相同的IP /站點目錄。但我正在使用URL Rewrite將user1.example.com重寫爲example.com/user1 – Alex 2010-08-19 18:50:45

+0

啊,我明白了 - 你應該在這個問題中說出這個問題! – 2010-08-19 19:41:01

回答

3

如果圖像很常見,爲什麼不將它們託管在諸如static.example.com之類的sperate子域中。這將有助於提高性能,因爲如果人們在多個子域上使用應用程序,圖像將被緩存。將其他靜態內容放在那裏,例如常見的JavaScript文件,也會有助於提高性能。

您還可以創建自定義HTML助手來輸出圖像的靜態URL。

+0

是的,我遇到了很多。如果我沒有弄錯,貝寶例如在images.paypal.com上託管圖片。但它意味着我不得不把這個額外的「http://images.example」而不是「/ images」......好吧,我可以使用查找 - >替換:) – Alex 2010-08-19 18:48:38

+2

爲什麼不做一個HTML助手而不是放入實際的鏈接?將來可以輕鬆更換。 – starskythehutch 2010-08-21 10:15:22

+0

這是一個很好的建議。謝謝。 – Alex 2010-08-22 15:57:19

0

您是否嘗試過使用類似:<img src="<%=Url.Content("~/")%>images/logo.png" />