我想在.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的虚拟目录(完全访问)添加了权限
更新:因此,似乎无法按照此博客文章https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/
从.net核心Web应用程序访问虚拟目录。相反,作者建议在UseFileServer()
中使用Startup.cs
。但是,我不确定如何将图像上传到文件服务器并显示它们。
答案 0 :(得分:0)
答案 1 :(得分:0)
因此,事实证明您不能在ASP.NET Core Web应用程序中使用虚拟目录(例如,根据本博客文章,https://www.jauernig-it.de/asp-net-coreiis-serving-content-from-a-file-share/)。
不必配置指向服务器上某个文件夹的虚拟目录,而必须将以下代码添加到ImportError
中的Configure()
中:
Startup.cs
例如,如果路径指向包含图像image.jpg的文件夹,则可以使用代码中的图像,如下所示:
app.UseFileServer(new FileServerOptions
{
FileProvider = new PhysicalFileProvider(@"\\server\path"),
RequestPath = new PathString("/MyPath"),
EnableDirectoryBrowsing = false
});
答案 2 :(得分:0)
在Configure
方法内,应用以下代码。
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(env.ContentRootPath, "uploads")),
RequestPath = "/uploads"
});