ASP.NET核心:在哪里放置上传的图像,哪些应该在解决方案中共享?

时间:2017-05-09 16:42:32

标签: c# asp.net-mvc io

我在ASP.MVC有一个网上商店。 该解决方案包含2个项目 - web.frontend和web.admin。

在web.admin中,可以上传文件。这些文件应该可以从web.frontend访问,以便在浏览器中显示。

我已经尝试了大量不同的C#方法到各种路径......

请为我提供一种方法,将共享文件放在浏览器也可以访问的位置。

我尝试将文件放在.sln根目录下 - 但是浏览器给出了一个错误:不允许加载本地资源。

所以不知何故,这些文件应放在web.frontend wwwroot中?来自web.admin项目?

1 个答案:

答案 0 :(得分:2)

您唯一的选择是使用虚拟目录。在完整的IIS中,这是一个相当直接的事情。您只需在IIS中向站点添加虚拟目录,并将其指向文件系统上存储这些文件的位置。然后,在HTML中使用此虚拟目录引用文件。例如:

<a href="/myvirtualdirectory/foo.txt">Foo</a>

开发中也需要相同的功能,但IIS Express的程序更加迂回,因为没有GUI管理。要在IIS Express中向项目添加虚拟目录,您需要转到Visual Studio中的File > New > Web Site...。点击Browse...按钮,然后点击Local IIS标签。选择项目的站点,然后单击右上角的图标,该图标看起来像带有红色星号的黄色文件夹。键入别名(这是您在HTML中使用的名称),然后浏览到文件系统上文件的位置。取消选中Create IIS application,然后点击OK。然后,再次点击CancelCancel。您实际上并不打算创建新网站;它是进入这个可以添加虚拟目录的区域的唯一途径。用其他项目冲洗并重复。