有没有办法在ASP.NET MVC 5中将图像包含在我的项目之外?

时间:2019-01-21 19:55:36

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-core-mvc

我在ASP.NET MVC 5框架的顶部有一个使用C#编写的项目。

我有C:/web_images上的图片,希望可以从我的应用中访问。在我看来,我希望能够编写~/images/abc.jpg,但我的应用程序将渲染位于C:/web_images/abc.jpg上的图像。

在新的ASP.NET Core框架中,可以使用静态文件完成相同的操作(通过将以下内容添加到Startup类的Configure方法中。)

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = blobFileProvider, //new PhysicalFileProvider("c:/web_images"),
        RequestPath = "/images"
    });

如何使用ASP.NET MVC 5创建此虚拟路径?

2 个答案:

答案 0 :(得分:0)

用户浏览器无法直接访问Web服务器驱动器(c :)。 最好的方法是创建一个.ashx文件,该文件可以允许用户(观看)显示文件。 查看示例:

<img src="~/ProcessImage.ashx?filename=image1.pgp"/>

希望对您有帮助。

答案 1 :(得分:0)

我想到的第一个选择是使用Owin并获取nuget包来提供静态文件,例如Microsoft.Owin.StaticFiles

第二种更具侵入性的方法是创建指向给定文件夹Symlink tutorial

的符号链接

第三种选择:在IIS上托管并创建虚拟目录。