2013-05-07 46 views
0

這似乎是一個非常常見的用例,但我不能在我的生活中找到有關如何設置它的任何信息。使用IIS Express和Visual Studio 2012開發靜態文件

我有一個「管理員」網站,我上傳圖片,然後我的正常網站(單獨項目),我需要顯示這些圖像。這兩個項目都需要能夠顯示圖像(所以我不能簡單地將它們存儲在網站的項目目錄中,並在一天內調用它)。

在生產中,這是毫不費力的。我只是在IIS中設置一個虛擬目錄,但是在Visual Studio中開發,沒有直接的支持。我已經在網上看到了一些可以讓你進入IIS Express配置文件並手動添加虛擬目錄的東西,但是這有兩個大問題:1)我處於多開發環境中,並讓每個開發人員都這樣做手動一致的方式是不行的,2)在我的代碼中沒有自動的方式來引用這個靜態目錄,所以這將需要大量的硬編碼路徑來映像引用,這是一個非常糟糕的主意。

我也知道,我可以在我的項目中創建鏈接,但是我正在處理上傳,而不是我在設計時知道的靜態資源,所以在我的項目中手動創建每個新上傳的鏈接(特別是當這僅僅用於開發測試時)是瘋了。

那麼,爲了在Visual Studio中開發的目的,在項目之間動態共享資源的最佳方式是什麼?

值得一提的是,這些都是ASP.NET MVC 4項目,我在Windows 7盒子上使用Visual Studio 2012。

編輯我應該指定上傳圖像時,該圖像的相對路徑存儲在數據庫表中。我想我的真正問題是從一個完全不同的項目中將部分路徑解析爲真正可訪問的URL。如果我在同一個項目中,我只是簡單地類似Url.Content(Model.ImageUrl),但是如果圖像實際上不在同一個項目中,這顯然不會解決。

+0

您的挑戰是管理文件夾還是創建鏈接? – 2013-05-07 14:49:41

+0

我想你可以說兩個。我並不在乎文件實際存儲的位置,實際上,我並不真正需要*關心。我們可能將這些項目託管給他們,並將他們轉移到CDN等生產環境中。但是,我希望能夠在我的代碼中以抽象方式引用文件(如果需要,可以使用Url.Content()或甚至自定義助手)。我真的不想硬編碼路徑。 – 2013-05-07 14:53:16

+0

好吧,有很多方法可以做到這一點,但最明顯的方法是創建一個帶有PK ID和字符串路徑的映射表。您可以根據需要創建路徑,並且可以在您的URL中使用該標識。 – 2013-05-07 14:58:14

回答

1

有人指出我正在過度考慮這一點。

在生產中,這些文件當然會通過某個虛擬目錄提供,但是在開發過程中,它們的服務位置並不重要。所以,我真正需要做的就是爲靜態URL前綴添加一個應用設置,以便將其添加到相對圖片網址。

對於開發它只是我管理網站的localhost +端口。 然後,在我的發佈web.config轉換中,我只是將其更改爲生產URL,即類似「http://static.mydomain.com」。在我的應用程序代碼中,我只是查找這個應用程序設置,並將其添加到我的相對圖片網址中,而我是金手指。

如果我遇到了這種方法的任何問題,我會在適當的解決方案中注意到它們,一旦我有機會真正實現它。

相關問題