WebAPI的MVC favicon.ico路由

时间:2017-05-26 22:02:36

标签: asp.net-web-api asp.net-core asp.net-core-mvc favicon

我有一个使用.NET Framework 4.6.2的ASP.NET Core MVC / WebAPI项目。在我的解决方案中,我为每个环境(DEV,Staging,PROD)提供了不同的favicon图像。当显示MVC页面时,我能够将浏览器指向该环境的正确favicon而没有问题。但是,任何API GET调用都是直接从Web浏览器完成的,它始终默认为站点根目录下的favicon.ico。无论如何都要让它路由到一个可配置的值,以便我可以选择显示哪一个?

1 个答案:

答案 0 :(得分:2)

你可以通过中间件来做到这一点。只需确保Startup.cs UseMiddleware<YourCustomMiddlware>方法中的Configure出现在UseStaticFiles()之前。这样,它将获得一个机会拦截请求并在常规静态文件中间件之前响应它。

在您的自定义中间件中,您只需要检查请求的URL以及它是否为根目录中的fav图标,然后您可以检查您是在Dev,Staging还是PROD中运行并返回实际您想要的文件。