我有兩個MVC應用程序 - Admin和User。管理員將上傳圖像,然後將顯示在用戶應用程序中。圖像路徑將存儲在數據庫中,該數據庫在兩個應用程序之間共享,並使用用戶應用程序將獲取圖像的路徑。如何讓Visual Studio中的兩個應用程序都可以訪問該圖像文件夾,並且一旦該網站上載到服務器上,又如何?在兩個mvc項目之間共享一個通用圖像文件夾
回答
這確實是兩個單獨的問題:
如何共享生產中的文件夾?
如果這些站點位於同一臺服務器上,則可以將共享映像放在同一服務器上的任何位置。如果它們位於不同的服務器上,則需要將兩臺服務器上的網絡位置映射到圖像所在的位置。無論哪種情況,您都會在兩個站點上的IIS中創建一個指向該共享位置的虛擬目錄。
如何在開發中共享文件夾(即Visual Studio)?
這有點棘手。基本上,您需要以與生產相同的方式處理它,但問題在於IIS Express不像完整的IIS那樣透明。我在Visual Studio 2012和2013中採用了以下方法,但是最後一次在2015年嘗試使用它時,它不再有效。儘管如此,這可能已經被修復,因爲它已經有一段時間了。無論如何,這幾乎是你唯一的選擇。
- 右鍵單擊Solution Explorer窗格中的解決方案,然後選擇
Add > New Website...
。 - 單擊產生的窗口上的
Browse...
按鈕。 - 單擊
Local IIS
選項卡。 - 在列表中找到您要使用共享圖像目錄的第一個站點,然後單擊它以突出顯示它。
- 然後,在窗口的右上角,單擊看起來像帶有星形文件夾的圖標。如果你將鼠標懸停在它上面,它會說「創建新的虛擬目錄」。
- 在「別名:」中,輸入應用程序應該位於的路徑部分。例如,如果您想在
http://localhost:12345/SharedImages
找到圖像,那麼您應該輸入SharedImages
。儘管如此,請確保您選擇的不是您項目中的實際現有目錄。 - 對於「文件夾:」,瀏覽到計算機上共享圖像的物理目錄。
- 取消選中
Create IIS application
複選框。 - 點擊
OK
。 - 爲其他站點重複步驟4-9。
- 點擊上一個窗口中的
Cancel
。 - 再次點擊原始
Add New Website Window
上的Cancel
。 (你不是真的要到一個新的網站添加到您的解決方案。這僅僅是訪問,您可以創建此虛擬目錄的地方的唯一途徑。)
在這一點上,你應該回到主Visual Studio窗口。您實際上不會注意到您的項目/解決方案有任何不同之處,因爲這些都是在IIS Express中完成的。不過,如果你瀏覽你的網站,並嘗試在虛擬目錄下的加載圖像,你應該能夠看到它在你的瀏覽器,即:
http://localhost:12345/SharedImages/foo.jpg
如果你看到的圖像,一切工作正常。
- 右鍵單擊Solution Explorer窗格中的解決方案,然後選擇
如果您提供完整的網址給用戶應用程序,它將獲取圖像,無需其他配置。不過可以肯定的是這兩個應用程序正在運行,並且您提供完整的URL沒有文件路徑
[更新] 這將工作:
Http://domain.com/folder/file.ext
這是行不通的:
D:\\Hosting\domain\folder\file.ext
順便說一句,我認爲這兩個應用程序可以在相同或不同的服務器上 – Ziyad
- 1. 兩個MVC項目 - 圖像共享
- 2. 在兩個域之間共享圖像文件夾cakephp
- 3. 使用asp.net mvc在兩個網站之間共享圖像?
- 4. 在兩個MVC項目之間共享.AspNet.ApplicationCookie
- 5. Symfony - sfDoctrineGuard - 在兩個Symfony項目之間共享模型文件
- 6. 如何共享兩個項目之間的文件夾在Visual Studio 2010
- 7. 在兩個django項目之間共享一個模型
- 8. 在兩個Visual Studio項目之間共享一個類
- 9. 在兩個網站之間共享文件夾
- 10. 共享兩個項目文件
- 11. 在兩個文件之間共享一個按鈕變量
- 12. 如何在兩個nib文件之間共享一個NSArrayController?
- 13. 在兩個Web項目之間共享應用程序設置
- 14. 在一個解決方案中的兩個項目之間的Visual Studio 2013共享文件夾
- 15. 在不同的ASP.NET項目之間共享bin文件夾
- 16. Visual Studios - 在不同項目之間共享文件夾
- 17. 兩個網站之間的共享文件夾?
- 18. 兩個網絡服務器之間的共享文件夾
- 19. 在Github的2個項目之間共享文件?
- 20. 是否可以在多個項目之間共享ResourceDictionary文件?
- 21. 在兩個視圖之間共享圖像
- 22. 多個項目之間共享資產
- 23. 在BigQuery項目之間共享視圖
- 24. qtmake - 兩個項目/目標之間的共享資源
- 25. Eclipse:用於測試的兩個項目之間的共享包
- 26. 如何在兩個Eclipse插件之間共享通用功能?
- 27. 在git中共享兩個項目之間的代碼
- 28. 在兩個Django項目之間共享模型(和表)
- 29. 在.net中的兩個項目之間共享dll
- 30. 如何在兩個項目之間共享代碼?
我建議你在Azure中使用blob存儲。 –
雖然這將是一個很好的解決方案,但OP沒有提及使用Azure,可能無法使用Azure。 –