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

如何在Azure App Service根目录提供静态HTML文件?解决404报错

解决Azure App Service中wwwroot静态HTML文件404的问题

针对你在.NET 7 Azure Web App中遇到的wwwroot下HTML文件无法访问(404)的问题,可按以下步骤排查解决:

  • 确认静态文件中间件已启用
    在项目的Program.cs中,必须添加app.UseStaticFiles();代码,且中间件顺序要正确。正确的配置示例如下:

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddControllersWithViews();
    
    var app = builder.Build();
    
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    
    app.UseHttpsRedirection();
    // 启用静态文件服务,这行必须存在,且位置要在路由之前
    app.UseStaticFiles();
    
    app.UseRouting();
    app.UseAuthorization();
    
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    

    注意:UseStaticFiles()必须放在UseRouting()和UseAuthorization()之前,确保静态文件请求优先被处理。

  • 检查文件名大小写匹配
    如果你的App Service部署在Linux环境下,文件系统是大小写敏感的。需确保URL中的文件名(如{my_custom_name}.html)与wwwroot中实际文件名的大小写完全一致(包括扩展名)。Windows环境则无此限制,但建议保持一致避免问题。

  • 排查URL重写规则干扰(Windows环境)
    若使用Windows环境的App Service,检查web.config中的重写规则是否拦截了静态文件请求。可添加如下规则排除HTML等静态文件的重写:

    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <!-- 让静态文件请求直接返回,不执行后续重写规则 -->
            <rule name="Static Files" stopProcessing="true">
              <match url=".*\.(html|css|js|png|jpg|jpeg|gif|ico|svg)$" />
              <action type="None" />
            </rule>
            <!-- 其他重写规则 -->
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>
    
  • 检查中间件顺序与自定义拦截逻辑
    若项目中存在自定义中间件,确保UseStaticFiles()在所有可能拦截请求的自定义中间件之前执行,避免静态文件请求被提前拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:45:04