我在我的母版页中有一个favicon的图标(假设我定义了~/resources/company.ico )。现在如果这个company.ico不存在,浏览器(经测试的ie和mozilla)将尝试查找默认的收藏图标名称,即~/favicon.ico。如果最后一个不存在,它将直接转到用户屏幕。
对于ex来说,这是非常不同的。我放了一个不存在的css文件的链接,在那里浏览器将对用户隐藏这个404,并显示没有此资源的页面。
为什么这两种情况的表现如此不同?这种情况只可能发生在favicon.ico中吗?或者它会发生在其他“特定”类型的资源中吗?
发布于 2012-11-22 23:25:23
可能在我最初的问题中没有足够的信息,我期待着有人指出它不应该这样做。这一点后来得到了证明,因为它有一个缺少favicon的静态页面,该页面优雅地处理了404个资源。
答案实际上是在web.config中的http模块上运行所有模块选项,这是由于静态文件(CSS、JS、*.ico等)。都是通过ASP.Net管道运行的。
我们正在使用盒式磁带提供静态文件,而我们使用的盒式磁带版本不支持关闭RAMMFAR选项。
这些是对web.config的更改,它阻止了不正确的行为:
<modules runAllManagedModulesForAllRequests="false">
<add name="CassetteHttpModule" type="Cassette.Aspnet.CassetteHttpModule, Cassette.Aspnet" />
<add name="AuthenticationModule" type="ProjName.Web.HttpModules.AuthenticationModule" preCondition="managedHandler" />
<add name="ErrorModule" type="ProjName.Web.HttpModules.ErrorModule" preCondition="managedHandler" />
</modules>感谢每一个想要帮助我们的人。
有帮助的资源:
Scott Hanselman:http://www.hanselman.com/blog/BackToBasicsDynamicImageGenerationASPNETControllersRoutingIHttpHandlersAndRunAllManagedModulesForAllRequests.aspx
里克·斯特拉尔:http://www.west-wind.com/weblog/posts/2012/Oct/25/Caveats-with-the-runAllManagedModulesForAllRequests-in-IIS-78
发布于 2012-11-21 23:46:15
此行为仅与收藏夹图标相关,并取决于浏览器实现。
https://stackoverflow.com/questions/13496787
复制相似问题