【问题标题】:How to display images stored in a virtual directory in .NET Core app?如何在 .NET Core 应用程序中显示存储在虚拟目录中的图像?
【发布时间】:2019-11-01 00:44:45
【问题描述】:

我想在我的 .net 核心网站上显示图像。图像存储在 IIS 服务器上的网站文件夹之外。

在互联网上,我读到了这样做的一种方法,即使用我随后设置的虚拟目录。下面是虚拟目录的配置:

我想,访问保存在虚拟目录指向的文件夹内的图片会很容易,但是直到现在我还没有成功。

在我的 html 中,我尝试了以下操作:

<img src="/Uploads/image.jpg" />

<img src="Uploads/image.jpg" />

<img src="../Uploads/image.jpg" />

<img src="./Uploads/image.jpg" />

但没有任何效果。 检查网站时,图片出现 404 错误。

更新:我为 IUSR 和 IIS_IUSRS 添加了对虚拟目录的权限(完全访问)

更新:所以我似乎无法从 .net 核心网络应用程序访问虚拟目录,根据这篇博文:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/

相反,作者建议在Startup.cs 中使用UseFileServer()。但是,我还不确定如何将图像上传到文件服务器并显示它们。

【问题讨论】:

    标签: c# html asp.net iis virtual-directory


    【解决方案1】:

    Configure 方法中,应用以下代码。

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(env.ContentRootPath, "uploads")),
        RequestPath = "/uploads"
    });
    

    【讨论】:

      【解决方案2】:

      事实证明,您不能在 ASP.NET Core Web 应用程序中使用虚拟目录(根据这篇博文,例如:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/)。 您必须将以下代码添加到您的Configure() Startup.cs 中,而不是配置指向服务器上某个文件夹的虚拟目录:

      app.UseFileServer(new FileServerOptions
      {
      FileProvider = new PhysicalFileProvider(@"\\server\path"),
      RequestPath = new PathString("/MyPath"),
      EnableDirectoryBrowsing = false
      });
      

      如果路径例如指向包含图像 image.jpg 的文件夹,您可以像这样使用代码中的图像:

      <img src="/MyPath/image.jpg" />
      

      【讨论】:

        【解决方案3】:

        尝试如下设置图片路径。

        <img src="./test/1.jpg"/>
        

        检查您是否授予图像文件夹的正确权限。

        问候, 哈尔帕

        【讨论】:

        • 感谢您的帮助。不幸的是,它还没有工作。我还授予了对 IIS_USRS 和 IUSR 对虚拟目录的完全访问权限。在谷歌浏览器中,图像出现以下错误:加载资源失败:服务器响应状态为 404(未找到)。虚拟目录是否必须转换为应用程序?
        • 你能分享你的虚拟目录完整路径和你的网站页面路径吗?尝试清除浏览器的缓存和历史和缓存。如果您的网站页面在子文件夹下,您需要设置 sitefoldervirtual dir path
        • 分享错误快照并刷新或重启iis服务器。
        • 我尝试使用隐身模式(而不是清除缓存和历史记录)并在托管服务器上使用命令iisreset。错误仍然存​​在。以下是站点文件夹、虚拟目录路径等的快照:imgur.com/a/e9XeTzH。非常感谢您的帮助
        • 你在使用 asp.net 应用程序吗?如果是,那么您需要在更改文件后发布您的站点或应用程序。你看到image 你的文件仍在使用 而不是
        猜你喜欢
        • 2021-03-23
        • 2021-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多