2012-05-07 36 views
2

我的目標是跨多個網站共享IIS,相同的父虛擬目錄下的圖像,CSS,JS等。當然,我可以硬編碼圖像路徑,但我希望.NET有一種方法可以使用IIS配置智能地解析URL。如何解決.NET中同一父級IIS虛擬目錄中不同站點的絕對URL?

這裏是我的文件/虛擬目錄結構:

Parent Site (Virtual Directory) 
    default.aspx 
    mypage.aspx 
    otherpage.aspx 
    images 
    - logo.jpg 
    css 
    - site.css 
    Subsite1 (Virtual Directory) 
    - default.aspx 
    - products.aspx 
    Subsite2 (Virtual Directory) 
    - default.aspx 
    - products.aspx 
    - miscellaneous.aspx 

Parent SiteSubsite1Subsite2是設立http://parentsite.comhttp://subsite1.comhttp://subsite2.com,分別爲所有虛擬目錄。我想在這些網站上分享圖片,js,css等。

.NET中是否存在一種方法,當從其中一個子網站(例如,http://subsite.com/default.aspx)調用時將解析~/images/logo.jpghttp://parentsite.com/images/logo.jpg

+2

.NET如何知道「subsite.com」和「parentsite.com」有什麼關係?它唯一可以涉及的是當前的URI請求。也許只是創建鏈接到父級共享文件夾的子級虛擬目錄,以便它們可以引用/資產/? –

+1

在根中創建一個文件夾,稱之爲資產。將所有共享資源放置在那裏。在每個「虛擬目錄」的內部,爲引用根資產文件夾的資產創建一個新的虛擬目錄。然後〜/資產將最終成爲根站點的資產文件夾。 parentsite.com/assets,childsite.com/assets是同樣的事情 –

+0

恕我直言,雖然這將工作CDN類型設置有更多的好處。 1)緩存! 2)[更多連接在同一時間](http://www.browserscope.org/?category=network)。 – Eonasdan

回答

3

在IIS6甚至IIS7中,您可以在所有子站點中使用新的虛擬目錄,將其稱爲「assets」。

更新後的網站佈局:

Parent Site (Virtual Directory) 
    default.aspx 
    mypage.aspx 
    otherpage.aspx 
    assets 
      -images 
       - logo.jpg 
      -css 
       - site.css  

Subsite1 (Virtual Directory) 
    - default.aspx 
    - products.aspx 
    assets (Virtual Directory to parent assets) 

Subsite2 (Virtual Directory) 
    - default.aspx 
    - products.aspx 
    - miscellaneous.aspx 
    assets (Virtual Directory to parent assets) 

有了這個結構,你可以與所有站點共享相同的「資產」文件夾,仍然可以訪問它作爲「〜/資產」。這使您可以將資產與IIS正在應答的任何域一起使用。

http://parentsite.com/assets

http://childsite.com/assets

一個CDN是一個不錯的選擇,但是很多時候,你會爲每個站點像http://cdn.parentsite.comhttp://cdn.childsite.com創建單獨的DNS enteries然後創建一些功能來引用文件作爲http://cdn.(currentdomain)。

在我看來,使用共享資源文件夾的絕對路徑或相對路徑會讓您的生活更輕鬆。

3

您應該創建一個cdn子域並將資源文件指向該子域。

http://cdn.parentsite.com/images/logo.jpg 
http://cdn.parentsite.com/css/site.css 

等。

~/images/logo.jpg永遠不會解決任何東西,然後其他應用程序的根目錄。這就是~的整點。

1

一個選項是創建resources.site.com,它具有共享圖像或將其移動到CDN。

然後,在每個使用這些資源的站點中,都有一個資源所在的配置設置。這些網站使用配置設置將完全限定的網址格式化爲資源。

由於您已經在代碼中提取了resources.site.com,它可能位於同一臺服務器,不同服務器,CDN等中......無所謂 - 您的服務方式靈活他們了。您也可以在同一臺服務器上啓動它,當您想要優化地理位置時,請將其移至CDN。

相關問題