.NET9新增的MapStaticAssets导致的问题:WebApp部署到Linux后,新上传图片404, ftp传上去的图片也是404,项目发布时就有的图片访问一切正常
问题
.NET9 WebApp部署到Ubuntu 24.04
网页看上去访问都正常,继续测试,上传图片后,发现图片无法显示,直接用url访问404。自己ftp上传上去的图片也无法显示,即使权限加到最高也没有用。
项目发布时就有的图片访问一切正常
原因
.NET9 新增了MapStaticAssets,可以对css, js等在编译时就提供极高的压缩比,缩小90%左右。大多数情况可以取代UseStaticFiles。
File | Original | Compressed | % Reduction |
---|---|---|---|
bootstrap.min.css | 163 | 17.5 | 89.26% |
jquery.js | 89.6 | 28 | 68.75% |
bootstrap.min.js | 78.5 | 20 | 74.52% |
Total | 331.1 | 65.5 | 80.20% |
但其仅对发布时就有的资源有效。使用中新上传的文件不起作用,且新上传的文件url访问直接404。
能不能配置,支持后上传的文件也能访问?有知道的朋友请回复到评论区。
解决办法
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
var app = builder.Build();
// 配置静态文件中间件,解决新上传图片404问题
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.MapStaticAssets(); // 使用 MapStaticAssets编译时优化css,js等资源的尺寸
app.Run();
增加这句:app.UseStaticFiles();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能