.NET IIS发布项目后设置虚拟路径访问文件 404

解决方案:

找到Startup.cs中适当配置静态文件中间件:

确保调用了UseStaticFiles中间件

cs 复制代码
public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // 确保这行在UseRouting之前

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers(); // 你的自定义路由
    });
}

再检查Web.config配置文件里有

cs 复制代码
<location path="." inheritInChildApplications="false"></location>

假设有一个网站,其根目录下有多个子应用程序,你可能想为根网站设置一些特定的HTTP头部,而不希望这些设置应用到子应用程序。你可以在web.config文件中这样配置:

cs 复制代码
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <httpProtocol>
        <customHeaders>
          <add name="X-Frame-Options" value="SAMEORIGIN" />
          <add name="X-Content-Type-Options" value="nosniff" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
  </location>
</configuration>

这样静态文件请求(如图片、CSS、JavaScript文件)就不会被路由系统拦截。

<location path="." inheritInChildApplications="false">是一个强大的配置工具,用于在IIS中对根应用或网站进行精细控制,而不干扰子应用的配置。

相关推荐
WarPigs7 小时前
Windows IIS开启和配置服务器
运维·服务器
半斤八两2117 小时前
个人服务器发送消息至飞书
服务器
pengyi8710158 小时前
共享 IP 池多人使用 分层权限与配额管理方案
运维·服务器·网络
回忆2012初秋8 小时前
Quartz.NET 全面解析与实战指南
.net
楼兰公子8 小时前
读取rpi摄像头
linux·服务器·算法
李景琰9 小时前
Debian12安装配置Mqtt之EMQX
linux·运维·服务器
接着奏乐接着舞9 小时前
3D Tiles tileset.jso 数据格式
运维·服务器·3d
李小白202002029 小时前
RK3568 linux6.1 死机
linux·运维·服务器
FreeGo~9 小时前
Linux 系统编程 进程篇 (五)
java·linux·服务器
nbwenren9 小时前
办公AI实测:Gemini3、GPT-4o、Claude3.5谁更强?
服务器·数据库·php