.NET 6 根路径无法自动加载index.html 需手动输入完整路径是什么原因?
问题原因
这不是.NET 6的已知问题,是你遗漏了默认文件中间件的配置:UseStaticFiles仅负责提供静态文件的访问能力,不会自动处理根路径到默认首页的映射,需要额外配置UseDefaultFiles中间件实现该功能。
解决方案
修改Program.cs配置,在UseStaticFiles之前添加app.UseDefaultFiles()即可,调整后的完整配置如下:
app.UseSwagger(); app.UseSwaggerUI(); app.UseHttpsRedirection(); // 新增默认文件中间件,必须放在UseStaticFiles之前 app.UseDefaultFiles(); app.UseStaticFiles(); app.UseAuthorization(); app.MapControllers(); app.Run();
补充说明
UseDefaultFiles默认会按优先级检索以下文件作为站点默认首页:
- default.htm
- default.html
- index.htm
- index.html
完全匹配你存放在wwwroot下的index.html文件,配置后访问站点根路径会自动加载该文件。
如果你需要自定义默认首页文件名,可通过传入参数实现,示例如下:
var defaultFileOpts = new DefaultFilesOptions(); // 清空默认规则 defaultFileOpts.DefaultFileNames.Clear(); // 新增自定义默认首页 defaultFileOpts.DefaultFileNames.Add("custom-landing.html"); app.UseDefaultFiles(defaultFileOpts);
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

