You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6如何访问项目外部图片目录并正常显示图片?

ASP.NET Core 6 外部目录图片无法显示的解决方法

核心问题

你现在的配置存在两个关键错误:

  1. 静态文件中间件未设置RequestPath,外部目录没有对应的URL访问前缀,服务器无法识别请求与该目录的映射关系
  2. 视图里直接使用本地磁盘绝对路径(如C:\...),浏览器出于安全限制,不允许直接访问本地文件系统路径

修复步骤

1. 修正Program.cs的静态文件配置

给外部目录添加RequestPath,指定一个URL前缀(比如/item-images),让服务器知道请求这个前缀时去对应物理目录查找文件:

app.UseStaticFiles(); // 保留默认的wwwroot静态文件处理逻辑

app.UseStaticFiles(new StaticFileOptions()
{
    FileProvider = new PhysicalFileProvider(
        Path.GetFullPath("C:\\Development\\Website\\Classic\\websiteImages\\Images\\ItemImages")),
    RequestPath = "/item-images" // 新增:设置URL访问前缀
});

2. 修改视图中的图片路径

放弃使用本地磁盘路径,改用刚才设置的URL前缀加上文件名:

<!-- 直接写法 -->
<img src="/item-images/@pic.FileName" alt="@pic.FileName" width="100" class="img-thumbnail d-inline">

<!-- 或使用Url.Content辅助方法 -->
<img src="@Url.Content($"/item-images/{pic.FileName}")" />

验证方法

配置完成后,直接在浏览器地址栏访问http://你的域名或localhost/item-images/10001234.jpg,如果能正常显示图片,说明配置生效,视图里的图片也会正常加载。

内容的提问来源于stack exchange,提问作者whisk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:01:02