.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中对根应用或网站进行精细控制,而不干扰子应用的配置。

相关推荐
郝学胜-神的一滴41 分钟前
Linux Socket编程核心:深入解析sockaddr数据结构族
linux·服务器·c语言·网络·数据结构·c++·架构
杨了个杨89826 小时前
nginx常见功能部署
运维·服务器·nginx
小天源8 小时前
linux漏洞一键扫描
linux·运维·服务器·漏洞扫描
m0_696212688 小时前
个人微信api
运维·服务器
Web极客码9 小时前
区块链第 1 层与第 2 层有什么区别?
服务器·区块链
小白鸽i11 小时前
【LINUX】将源码驱动文件编译并生效
linux·运维·服务器
做萤石二次开发的哈哈12 小时前
萤石开放平台 音视频 | 产品概述
运维·服务器·萤石云·萤石·萤石开放平台
德迅云安全—珍珍14 小时前
2核2G的云服务器可以架设游戏吗?
运维·服务器·游戏
Miracle&16 小时前
在Linux VirtualBox中安装系统失败
linux·运维·服务器
ShoreKiten16 小时前
ctfshow-web316
运维·服务器·前端