在两个mvc项目之间共享一个公共图像文件夹

时间:2016-09-09 11:19:45

标签: c# asp.net-mvc image asp.net-mvc-4 visual-studio-2015

我有两个MVC应用程序 - 管理员和用户。管理员将上传图像,然后将显示在“用户”应用程序中。图像路径将存储在数据库中,该数据库在两个应用程序之间共享,并使用用户应用程序将获取图像的路径。如何将图像文件夹设置为可访问Visual Studio中的两个应用程序,以及将网站上载到服务器后?

2 个答案:

答案 0 :(得分:2)

这实际上是两个不同的问题:

  1. 如何在生产中共享文件夹?

    如果站点位于同一服务器上,则可以将共享映像放在同一服务器上的任何位置。如果它们位于不同的服务器上,您可能希望将两台服务器上的网络位置映射到映像所在的位置。在任何一种情况下,您都可以在指向该共享位置的两个站点上的IIS中创建虚拟目录。

  2. 如何在开发中共享文件夹(即Visual Studio)?

    这有点棘手。基本上,您需要以与生产相同的方式处理它,但问题是IIS Express不像完整IIS那样透明。我在Visual Studio 2012和2013中使用了以下方法,但上次我在2015年尝试时,它已不再有效。但是,现在可能已经修复了,因为它已经有一段时间了。无论如何,这几乎是你唯一的选择。

    1. 在“解决方案资源管理器”窗格中右键单击解决方案,然后选择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. 再次点击原始Cancel上的Add New Website Window。 (您实际上并不是要在解决方案中添加新网站。这只是访问您可以创建此虚拟目录的地方的唯一方法。)
    13. 此时,您应该返回主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