ASP.NET Core中cshtml无法正常显示wwwroot下图片如何解决
问题原因及解决方案
1. 核心路径错误修正
ASP.NET Core中wwwroot是静态资源的默认Web根目录,客户端发起资源请求时不需要在路径中携带wwwroot目录名。你当前使用的相对路径写法会随页面路由动态变化,当页面路由为/dashboard时,路径解析结果与实际静态资源路径不匹配。
正确的img标签写法如下:
<img src="/images/images.jpg" width="30" height="30" alt="">
以/开头的绝对路径会直接从Web根目录(也就是wwwroot目录)开始匹配资源,不受当前页面路由影响。
2. 静态资源中间件校验
确认你的项目启动配置文件(Program.cs或.NET 5及更早版本的Startup.cs)中已启用静态资源中间件,这是加载wwwroot下资源的前提:
// Program.cs中需存在该行,且顺序要在路由匹配、授权中间件之前 app.UseStaticFiles();
该配置默认创建项目时会自动生成,若手动删除需补充。
3. 辅助排查方案
如果修改路径后仍无法加载,可按以下步骤定位问题:
- 打开浏览器开发者工具(F12),切换到「网络」标签页,刷新页面查看对应图片请求的状态码:
- 若返回404:检查wwwroot目录下是否真实存在
images/images.jpg文件,若部署在Linux环境需注意路径大小写敏感问题 - 若返回401/403:检查是否为静态资源配置了授权规则,默认静态资源不会走控制器的Session校验逻辑
- 若返回404:检查wwwroot目录下是否真实存在
- 直接在浏览器地址栏输入
https://你的域名/images/images.jpg,确认是否可以直接访问到图片
内容的提问来源于stack exchange,提问作者jgrewal
相关产品推荐
相关产品推荐

