asp.net-web-api - 用于 WebAPI 的 MVC favicon.ico 路由

标签 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)都有不同的图标图像。当显示 MVC 页面时,我可以毫无问题地将浏览器指向该环境的正确图标。但是,任何直接从 Web 浏览器完成的 API GET 调用,它始终默认为站点根目录下的 favicon.ico。有没有办法让它路由到一个可配置的值,以便我可以选择显示哪个值?

最佳答案

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

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

关于asp.net-web-api - 用于 WebAPI 的 MVC favicon.ico 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44210687/

相关文章:

c# - 在 MVC 6 中,如何在 View 中编写复选框列表并将选中的值传递给 Controller ​​?

c# - 来自 Web 表单的 Web-API 调用 - AJax。不存在 'Access-Control-Allow-Origin' header

c# - Asp.net Webapi 使用 [FromUri] 和具有两个参数的路由

javascript - 在决定输入字段的类型之前检查浏览器是否兼容 HTML5

c# - Asp.Net Core 重定向到 Action 但不允许直接调用 Action ?

c# - ASP.NET Core - 单例注入(inject)时存储库依赖项注入(inject)失败

angularjs - User.Identity.GetUserId() 和 RequestContext.Principal.Identity.GetUserId() 在 WEB API Controller 中返回 NULL。使用基于 token 的身份验证

security - 在 ASP.NET Web API 中,如何防止来自没有 cookie 的客户端的 CSRF 攻击?

C# ASP.NET Core [Inject] 依赖注入(inject)的属性用法

c# - 在 ASP.NET Core 启动期间使用 Serilog 和 Sentry