我有一个使用.NET Framework 4.6.2的ASP.NET Core MVC / WebAPI项目。在我的解决方案中,我为每个环境(DEV,Staging,PROD)提供了不同的favicon图像。当显示MVC页面时,我能够将浏览器指向该环境的正确favicon而没有问题。但是,任何API GET调用都是直接从Web浏览器完成的,它始终默认为站点根目录下的favicon.ico。无论如何都要让它路由到一个可配置的值,以便我可以选择显示哪一个?
答案 0 :(得分:2)
你可以通过中间件来做到这一点。只需确保Startup.cs UseMiddleware<YourCustomMiddlware>
方法中的Configure
出现在UseStaticFiles()
之前。这样,它将获得一个机会拦截请求并在常规静态文件中间件之前响应它。
在您的自定义中间件中,您只需要检查请求的URL以及它是否为根目录中的fav图标,然后您可以检查您是在Dev,Staging还是PROD中运行并返回实际您想要的文件。