Asp.net web api MVC favicon.ico WebAPI路由

Asp.net web api MVC favicon.ico WebAPI路由,asp.net-web-api,asp.net-core,asp.net-core-mvc,favicon,Asp.net Web Api,Asp.net Core,Asp.net Core Mvc,Favicon,我有一个使用.NET Framework 4.6.2的ASP.NET核心MVC/WebAPI项目。在我的解决方案中,每个环境(开发、登台、产品)都有不同的favicon映像。当显示MVC页面时,我能够将浏览器指向该环境的正确favicon,而不会出现问题。但是,任何API直接从web浏览器进行调用时,都会在站点根目录中默认为favicon.ico。是否有办法将其路由到一个可配置的值,以便我可以选择显示哪个值?您可以通过中间件来实现这一点。只需确保Startup.csConfigure方法中的us

我有一个使用.NET Framework 4.6.2的ASP.NET核心MVC/WebAPI项目。在我的解决方案中,每个环境(开发、登台、产品)都有不同的favicon映像。当显示MVC页面时,我能够将浏览器指向该环境的正确favicon,而不会出现问题。但是,任何API直接从web浏览器进行调用时,都会在站点根目录中默认为favicon.ico。是否有办法将其路由到一个可配置的值,以便我可以选择显示哪个值?

您可以通过中间件来实现这一点。只需确保Startup.cs
Configure
方法中的
usemidware
位于
usesticfiles()
之前。这样,它将有机会在常规静态文件中间件之前拦截请求并响应它


在您的自定义中间件中,您只需检查请求的url,如果是根目录下的fav图标,则可以检查您是否在Dev、Staging或PROD中运行,并返回您所处文件的实际文件。

这可以工作,但我希望可以通过映射路由来完成。如果事实证明这是不可能的,我将把它标记为答案。无论哪种方法,你的答案都是+1。如果有一种方法可以通过路线映射来实现,那就太酷了。如果可能的话,我不知道如何通过路线图来实现。如果能以这种方式完成,希望其他人也会加入进来。