【问题标题】:Route for favicon网站图标的路线
【发布时间】:2013-05-26 13:19:17
【问题描述】:

我有一个具有多租户解决方案的 .net mvc4 应用程序。 其设置方式是尝试为客户端获取文件,如果未找到,则获取全局文件。

这一切都很好,在我的 RouteConfig.cs 中我在最底部有这行:

routes.Add("FaviconRoute", new Route("favicon.ico", new StaticFileRouteHandler("favicon.ico", "Content", "", true)));

StaticFileRouteHandler 是我的自定义类,可以加载全局文件或租户文件,效果很好。 但是我注意到我从 elmah(错误处理程序)中得到了很多错误,如下所示:

404 Http The controller for path '/favicon.ico' was not found or does not implement IController.

所以我一直在尝试解决此问题,但无法解决。如果我在 routeconfig 中将行放在更高的位置,那么它会干扰其他路线(所有路线都变为 site.com/favicon.ico?param1...)

我尝试过使用routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

但它不会运行我的代码,因此所有租户都会获得全局文件。

我知道如果链接它,favicon 不再需要位于根目录中,但我喜欢这种解决方案,其中我的静态文件处理程序选择正确的文件而不是更改文件的路径(我只是不想要代码发送到客户端,其中包含类似 ~/clients/clientA/favicon.ico 的路径

因此,如果可以通过简单地使我的路线更具体来解决它,那就太好了,这样它只会在根目录中捕获 favicon,而不是其他任何东西。所以我可以把它放在 routeconfig.cs 的顶部

最后,如果有人想查看 elmah 的完整错误,这里是:http://db.tt/3QBxIxmb

【问题讨论】:

    标签: asp.net-mvc-4 asp.net-mvc-routing favicon


    【解决方案1】:

    这个答案有帮助吗:https://stackoverflow.com/a/2501352/1586498

    routes.Add(new Route("favicon.ico", new StopRoutingHandler()));
    

    “关闭 Firefox,清除历史记录并重试。”

    【讨论】:

    • 自从我这样做了很久,现在我不记得我最终是如何管理的了,但我会回到它,看看这是否能解决它!
    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2013-06-14
    • 2018-04-27
    • 2012-04-20
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多