【问题标题】:ASP.net MVC favicon doesn't show upASP.net MVC favicon 不显示
【发布时间】:2011-03-25 14:50:17
【问题描述】:

在使用 ASP.NET MVC 时,我需要一些帮助来在我的网站上显示网站图标。

简而言之,问题在于,每当对

提出请求时

请求永远不会得到服务。火狐说:

内容编码错误 - 您的页面 正在尝试查看无法显示 因为它使用了无效的或 不支持的压缩形式。

我尝试过使用以下忽略路由策略来忽略路由,显然不是同时 ;-)

routes.Add(new Route("favicon.ico", new StopRoutingHandler()));
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.IgnoreRoute("Content/{file}", new { file = @".*" });

我可以确认它忽略了路由,因为我对控制器工厂进行了子类化并且它没有调用CreateController 最重要的是,我还有一个 png 版本的文件,它确实得到了服务。我还用 fiddler 对其进行了检查,每当我尝试通过 url 直接请求 ico 时,我都会弹出一个类似这样的提示:

GZip 标头中的幻数不是 正确的。确保您正在通过 GZip 流。

所以似乎 IIS 试图以某种方式将其压缩发送回? 如何阻止这种行为/使其发挥作用?

有什么见解吗?

更新:

我想通了,web.config 有一个自定义 httpmodule 来处理提供物理文件,它试图压缩文件输出。当您有图像文件时,这不起作用。 :-)

【问题讨论】:

    标签: asp.net-mvc iis gzip asp.net-mvc-routing favicon


    【解决方案1】:

    为什么要将它添加为路线?

    只需将其添加到您的母版页标题:

      <link rel="shortcut icon" media="all" type="image/x-icon" href="<%= Url.Content("~/favicon.ico") %>" /> 
    

    【讨论】:

    • 我没有将它添加为路线,我试图忽略它。我的母版页中已经有了那个 html 链接元素。这才是重点。图标没有被返回,不知何故,当它被请求时,浏览器不理解它返回的内容。
    猜你喜欢
    • 2016-09-28
    • 2019-03-21
    • 2020-08-23
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多