【发布时间】: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