如何在 .NET Core 应用程序中显示存储在虚拟目录中的图像?
How to display images stored in a virtual directory in .NET Core app?
我想在我的 .net 核心网站上显示图像。图片存储在 IIS 服务器上的网站文件夹之外。
在 Internet 上,我了解到一种方法是使用我随后设置的虚拟目录。下面配置虚拟目录:
本来以为可以很方便的访问文件夹里面保存的图片,虚拟目录指向,结果一直没成功
在我的 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 核心 Web 应用程序访问虚拟目录 post:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/
相反,作者建议在 Startup.cs
中使用 UseFileServer()
。但是,我还不确定如何将图像上传到文件服务器并显示它们。
尝试将图片路径设置如下。
<img src="./test/1.jpg"/>
检查您是否授予图像文件夹正确的权限。
此致,
贾尔帕
所以事实证明您不能在 ASP.NET 核心 Web 应用程序中使用虚拟目录(根据此博客 post,例如:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/)。
您不必配置指向服务器上某个文件夹的虚拟目录,而是必须将以下代码添加到 Startup.cs
中的 Configure()
:
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(@"\server\path"),
RequestPath = new PathString("/MyPath"),
EnableDirectoryBrowsing = false
});
例如,如果路径指向包含图像 image.jpg 的文件夹,您可以像这样使用代码中的图像:
<img src="/MyPath/image.jpg" />
在 Configure
方法中,应用以下代码。
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(env.ContentRootPath, "uploads")),
RequestPath = "/uploads"
});
我想在我的 .net 核心网站上显示图像。图片存储在 IIS 服务器上的网站文件夹之外。
在 Internet 上,我了解到一种方法是使用我随后设置的虚拟目录。下面配置虚拟目录:
本来以为可以很方便的访问文件夹里面保存的图片,虚拟目录指向,结果一直没成功
在我的 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 核心 Web 应用程序访问虚拟目录 post:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/
相反,作者建议在 Startup.cs
中使用 UseFileServer()
。但是,我还不确定如何将图像上传到文件服务器并显示它们。
尝试将图片路径设置如下。
<img src="./test/1.jpg"/>
检查您是否授予图像文件夹正确的权限。
此致, 贾尔帕
所以事实证明您不能在 ASP.NET 核心 Web 应用程序中使用虚拟目录(根据此博客 post,例如:https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/)。
您不必配置指向服务器上某个文件夹的虚拟目录,而是必须将以下代码添加到 Startup.cs
中的 Configure()
:
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(@"\server\path"),
RequestPath = new PathString("/MyPath"),
EnableDirectoryBrowsing = false
});
例如,如果路径指向包含图像 image.jpg 的文件夹,您可以像这样使用代码中的图像:
<img src="/MyPath/image.jpg" />
在 Configure
方法中,应用以下代码。
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(env.ContentRootPath, "uploads")),
RequestPath = "/uploads"
});