7

アプリケーションに次のようなイメージ タグがある場合:

<img src = @Url.Content("~/foo/bar.jpg") />

またはそのように:

<asp:image src = "~/foo/bar.jpg" />

またはそのように:

<input type = "image" ...>

また、これがたまたま ASP.NET アプリケーションである場合 (Web フォームまたは MVC は質問とは関係ありません。画像を提供するコードは同じでなければならないと思います)、どの特定のコンポーネントが画像の要求を処理しますか?

それは Web サーバー (IIS または Visual Studio の内部 Web サーバー) ですか、それとも Microsoft が作成した ASP.NET HttpHandler ですか。

ASP.NET 2.0 には、リソース ファイルを提供するためのハンドラーがあったことを覚えています。それも画像を提供するものですか?それは何と呼ばれていますか?

なぜこの質問をするのか / 私がやろうとしていること

ASP.NET MVC アプリケーションがあり、独自のカスタム HttpHandler またはコントローラーを作成して、画像などの静的アセットを提供し、それらがキャッシュされるようにしたいと考えています。

http://blog.hompus.nl/2011/03/11/make-your-browser-cache-the-output-of-an-httphandler/とhttp :/ /archive.msdn.microsoft.com/ResourceCache

Microsoft によって既に作成されたものがある場合は、Microsoft の組み込みの httpHandler セットのヘッダーが私が設定したものと矛盾しないように、応答で Http ヘッダーを送り返すときにいくつかの予防策を講じる必要があるかもしれないことを確認したいと思います。

4

2 に答える 2

2

デフォルトでは、ASPX ページ (画像などの静的リソースを含む) に対するすべての要求はクラスHttpHandlerのインスタンスであるdefault によって処理されます。PageHandlerFactory

インスタンスは、ASP.NET ファイルの要求を処理するために動的に作成されます。PageHandlerFactory クラスは、ASP.NET ページの既定のハンドラー ファクトリ実装です。

HttpHandlers および HttpModules に関する MSDN の記事からわかるように、主要な「組み込み」ハンドラーは、

  • 標準 ASP.NET ファイル (.aspx)、
  • Web サービス (.asmx)、
  • 汎用の非 UI ハンドラー (.ashx)、および
  • 1 つはトレース (trace.axd) を処理するためのものです。

画像リクエストを具体的に処理しているものはありません。だから、あなたは行ってもいいはずです=)

于 2013-03-12T15:02:19.470 に答える
1

さて、ASP.NET は静的リソースをあまり気にしないように見えます。そのため、これらのリソースの ISAPI フィルターを IIS に登録しません。

つまり、静的リソース用の特定のハンドラーを作成したい開発者は、ほぼ自由にやりたいことを行うことができます。

于 2013-03-14T13:25:43.643 に答える