【问题标题】:Is there a way to include images outside of my project in ASP.NET MVC 5?有没有办法在 ASP.NET MVC 5 中包含我的项目之外的图像?
【发布时间】:2019-01-21 19:55:36
【问题描述】:

我有一个在 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 创建此虚拟路径?

【问题讨论】:

  • 你能在网络服务器配置中做吗?在 IIS 中,您可以只创建一个虚拟目录,大多数网络服务器都会有类似的选项。无论如何,我倾向于这样做,因为我宁愿让 nginx 接收文件请求而不是 ASP 应用程序。
  • this 问题可能会有所帮助。

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


【解决方案1】:

用户浏览器无法直接访问网络服务器驱动器 (c:)。 最好的方法是创建一个允许用户(视图渲染)下载文件的 .ashx。 查看示例:

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

希望对你有所帮助。

【讨论】:

    【解决方案2】:

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

    第二种更具侵入性的方法是创建到给定文件夹的符号链接:Symlink tutorial

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

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 2017-02-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多