wwwroot 文件夹之外的 ASP.NET Core 静态文件加载问题

问题描述 投票:0回答:1

我正在开发 ASP.NET Core Web 应用程序,并且具有用户个人资料上传和显示功能。我将文件保存在

wwwroot
文件夹之外的另一个文件夹中。我已添加将外部文件夹作为静态文件选项包含在
programs.cs
中,但我仍然无法显示图像。

这是我的代码:

program.cs

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider("S:\\FileRepo")
});
app.UseStaticFiles();
模型中的

ImagePath

S:\FileRepo\Upload\dc41a1b0-28ee-4910-8010-f728c09c2c78_profilePhoto.jpg

我在视图页面中使用了

<img>
标签来显示图像

<img src="S:\FileRepo\Upload\dc41a1b0-28ee-4910-8010-f728c09c2c78_profilePhoto.jpg" alt="Profile Photo">

应用程序无法加载图像,我收到此错误:

不允许加载本地资源:file:///S:/FileRepo/Upload/dc41a1b0-28ee-4910-8010-f728c09c2c78_profilePhoto.jpg

你能帮我弄清楚我缺少什么吗?

我尝试使用静态文件选项。但它仍然抛出该错误。是否可以建议任何其他方法或纠正上述逻辑?

asp.net-core-6.0 static-files
1个回答
0
投票

如果不配置

RequestPath
,客户端请求静态文件时会直接使用文件的相对路径。您可以直接使用
<img src="/Your image.png" alt="Profile Photo">
,也可以使用
RequestPath
配置静态文件的请求路径。

以下是您可以参考的示例:

这是我存储外部图像的路径:

程序.cs:

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(@"C:\FileRepo\Upload"),
});

页码:

<img src="/IMAGE2.png" alt="Profile Photo">

结果: 还可以配置静态文件的请求路径:

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(@"C:\FileRepo\Upload"),
    RequestPath = new PathString("/MyPath")
});

页码:

<img src="/MyPath/IMAGE2.png" alt="Profile Photo">
© www.soinside.com 2019 - 2024. All rights reserved.