.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(); 

相关链接:

posted @   jopny  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示