.NET IIS发布项目后设置虚拟路径访问文件 404
解决方案:
找到Startup.cs
中适当配置静态文件中间件:
确保调用了UseStaticFiles
中间件
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles(); // 确保这行在UseRouting之前
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers(); // 你的自定义路由
});
}
再检查Web.config配置文件里有
<location path="." inheritInChildApplications="false"></location>
假设有一个网站,其根目录下有多个子应用程序,你可能想为根网站设置一些特定的HTTP头部,而不希望这些设置应用到子应用程序。你可以在web.config
文件中这样配置:
<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中对根应用或网站进行精细控制,而不干扰子应用的配置。