0

マスター ページに favicon のアイコンがあります (~/resources/company.ico が定義されているとしましょう)。この company.ico が存在しない場合、ブラウザ (ie および mozilla でテスト済み) はデフォルトのファビコン名 (~/favicon.ico) を探します。最後が存在しない場合は、ユーザー画面に直接 404 が表示されます。

これは、if for ex とは非常に異なるものです。存在しない css ファイルへのリンクを配置すると、ブラウザはこの 404 をユーザーから隠し、このリソースのないページを表示します。

これら 2 つの状況の動作が異なるのはなぜですか? この状況は favicon.ico でのみ可能ですか、それとも他の「特定の」タイプのリソースで発生する可能性がありますか?

4

2 に答える 2

3

この動作はファビコンのみに関連しており、ブラウザーの実装に依存します。

于 2012-11-21T15:46:14.650 に答える
2

おそらく私の最初の質問には十分な情報がありませんでした. これは、このリソースの 404 を正常に処理していた、favicon が欠落している静的ページを持つことによって後で証明されました。

ASP.Net パイプラインを介して実行される静的ファイル (CSS、JS、*.ico など) により、答えは実際には web.config の http モジュールの [すべてのモジュールを実行] オプションを使用することでした。

静的ファイルを提供するためにカセットを使用していますが、使用していたカセットのバージョンは 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

Rick Strahl: http://www.west-wind.com/weblog/posts/2012/Oct/25/Caveats-with-the-runAllManagedModulesForAllRequests-in-IIS-78

于 2012-11-22T15:25:23.470 に答える