我有两个MVC应用程序 - 管理员和用户。管理员将上传图像,然后将显示在“用户”应用程序中。图像路径将存储在数据库中,该数据库在两个应用程序之间共享,并使用用户应用程序将获取图像的路径。如何将图像文件夹设置为可访问Visual Studio中的两个应用程序,以及将网站上载到服务器后?
答案 0 :(得分:2)
这实际上是两个不同的问题:
如何在生产中共享文件夹?
如果站点位于同一服务器上,则可以将共享映像放在同一服务器上的任何位置。如果它们位于不同的服务器上,您可能希望将两台服务器上的网络位置映射到映像所在的位置。在任何一种情况下,您都可以在指向该共享位置的两个站点上的IIS中创建虚拟目录。
如何在开发中共享文件夹(即Visual Studio)?
这有点棘手。基本上,您需要以与生产相同的方式处理它,但问题是IIS Express不像完整IIS那样透明。我在Visual Studio 2012和2013中使用了以下方法,但上次我在2015年尝试时,它已不再有效。但是,现在可能已经修复了,因为它已经有一段时间了。无论如何,这几乎是你唯一的选择。
Add > New Website...
。Browse...
按钮。Local IIS
标签。http://localhost:12345/SharedImages
找到图片,则输入SharedImages
。但是,请确保您选择的任何内容都不是项目中的实际现有目录。Create IIS application
复选框。OK
。Cancel
。Cancel
上的Add New Website Window
。 (您实际上并不是要在解决方案中添加新网站。这只是访问您可以创建此虚拟目录的地方的唯一方法。)
此时,您应该返回主Visual Studio窗口。您实际上并未发现项目/解决方案有任何差异,因为这些都是在IIS Express中完成的。但是,如果您浏览您的网站并尝试在虚拟目录下加载图像,您应该能够在浏览器中看到它,即:
http://localhost:12345/SharedImages/foo.jpg
如果您看到图像,一切正常。
答案 1 :(得分:0)
如果您向用户应用提供完整的网址,则会获取不需要其他配置的图片。但请确保这两个应用程序都在运行,并且您提供的是完整的URL而不是文件PATH
<强> [UPDATE] 强> 这将有效:
Http://domain.com/folder/file.ext
这不起作用:
D:\\Hosting\domain\folder\file.ext