【问题标题】:MVC favicon.ico routing for WebAPIWebAPI 的 MVC favicon.ico 路由
【发布时间】:2017-10-27 21:15:12
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这可行,但我希望可以通过映射路线来完成。如果事实证明这是不可能的,我会将其标记为答案。无论哪种方式,您都会得到 +1 的答案。
    • 如果有办法通过路由映射来做到这一点,那就太酷了。如果可能的话,我不知道如何通过路由映射来做到这一点。如果能以这种方式完成,希望其他人能加入进来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多