2016-09-09 75 views
1

我有兩個MVC應用程序 - Admin和User。管理員將上傳圖像,然後將顯示在用戶應用程序中。圖像路徑將存儲在數據庫中,該數據庫在兩個應用程序之間共享,並使用用戶應用程序將獲取圖像的路徑。如何讓Visual Studio中的兩個應用程序都可以訪問該圖像文件夾,並且一旦該網站上載到服務器上,又如何?在兩個mvc項目之間共享一個通用圖像文件夾

+0

我建議你在Azure中使用blob存儲。 –

+0

雖然這將是一個很好的解決方案,但OP沒有提及使用Azure,可能無法使用Azure。 –

回答

1

這確實是兩個單獨的問題:

  1. 如何共享生產中的文件夾?

    如果這些站點位於同一臺服務器上,則可以將共享映像放在同一服務器上的任何位置。如果它們位於不同的服務器上,則需要將兩臺服務器上的網絡位置映射到圖像所在的位置。無論哪種情況,您都會在兩個站點上的IIS中創建一個指向該共享位置的虛擬目錄。

  2. 如何在開發中共享文件夾(即Visual Studio)?

    這有點棘手。基本上,您需要以與生產相同的方式處理它,但問題在於IIS Express不像完整的IIS那樣透明。我在Visual Studio 2012和2013中採用了以下方法,但是最後一次在2015年嘗試使用它時,它不再有效。儘管如此,這可能已經被修復,因爲它已經有一段時間了。無論如何,這幾乎是你唯一的選擇。

    1. 右鍵單擊Solution Explorer窗格中的解決方案,然後選擇Add > New Website...
    2. 單擊產生的窗口上的Browse...按鈕。
    3. 單擊Local IIS選項卡。
    4. 在列表中找到您要使用共享圖像目錄的第一個站點,然後單擊它以突出顯示它。
    5. 然後,在窗口的右上角,單擊看起來像帶有星形文件夾的圖標。如果你將鼠標懸停在它上面,它會說「創建新的虛擬目錄」。
    6. 在「別名:」中,輸入應用程序應該位於的路徑部分。例如,如果您想在http://localhost:12345/SharedImages找到圖像,那麼您應該輸入SharedImages。儘管如此,請確保您選擇的不是您項目中的實際現有目錄。
    7. 對於「文件夾:」,瀏覽到計算機上共享圖像的物理目錄。
    8. 取消選中Create IIS application複選框。
    9. 點擊OK
    10. 爲其他站點重複步驟4-9。
    11. 點擊上一個窗口中的Cancel
    12. 再次點擊原始Add New Website Window上的Cancel。 (你不是真的要到一個新的網站添加到您的解決方案。這僅僅是訪問,您可以創建此虛擬目錄的地方的唯一途徑。)

     

    在這一點上,你應該回到主Visual Studio窗口。您實際上不會注意到您的項目/解決方案有任何不同之處,因爲這些都是在IIS Express中完成的。不過,如果你瀏覽你的網站,並嘗試在虛擬目錄下的加載圖像,你應該能夠看到它在你的瀏覽器,即:

    http://localhost:12345/SharedImages/foo.jpg 
    

    如果你看到的圖像,一切工作正常。

0

如果您提供完整的網址給用戶應用程序,它將獲取圖像,無需其他配置。不過可以肯定的是這兩個應用程序正在運行,並且您提供完整的URL沒有文件路徑

[更新] 這將工作:

Http://domain.com/folder/file.ext 

這是行不通的:

D:\\Hosting\domain\folder\file.ext 
+0

順便說一句,我認爲這兩個應用程序可以在相同或不同的服務器上 – Ziyad

相關問題