5

私の課題の 1 つで、SVG 画像をレンダリングしようとしていました。IIS Express で SVG 画像をレンダリングするには、web.config ファイルに次のコードを含める必要があるというリンクを見つけるのに時間がかかりました。

<staticContent>
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>

出来た。しかし、なぜ/どのように理解できませんか?以前は、サーバーは正しい Content-Type ヘッダーを送信する必要があると考えていました。しかし、私の svg コードは Javascript でした。IIS は HTML ファイルのみをクライアント側に送信し、それらの HTML ファイルにはヘッダーにリンクされた Javascript が含まれていると (おそらく間違って) 考えました。では、IIS が HTML に関連付けられたすべての JavaScript ファイルもスキャンしているということでしょうか? それは少し信じがたいようです。HTML メイン ファイルに 10 個の JavaScript ファイルがあり、そのうちの 1 つに SVG ファイルが含まれている場合、IIS はそれらすべてをスキャンし、SVG が見つからないことを検出しますか? これが仕組みですか?

ありがとう

4

1 に答える 1

7

ブラウザが URL に到達すると、最初は HTML のみをダウンロードします。リンクされたファイル (Javascript、画像、CSS、SVG など) ごとに、ブラウザーはサーバーに対して個別の要求を行います。ご指摘のとおり、IIS は MIME タイプを認識しない限り、これらのファイルを提供しません。

あなたの質問に答えるには、いいえ、それはそれがどのように機能するかではありません。IIS はHTML ファイルをスキャンせず、クライアント (ブラウザー) からの要求に受動的に応答するだけです。HTML と Javascript を解析して Javascript を実行し、必要に応じてリンクされたリソースを求めてサーバーにさらに往復するのはブラウザーです。

編集

IIS の MIME タイプの目的は 2 つあります。

  1. サーバーのリソースへのアクセスを制限します。クライアントが Web.config ファイルを要求した場合、ファイルにはパスワードなどの機密情報が含まれている可能性が高いため、もちろん IIS はその要求をブロックする必要があります。
  2. 各ファイル タイプの処理方法を追跡します。たとえば、HTML ファイルは通常送信するだけですが、ASPX ファイルは ASP.Net で処理してから送信する必要があります。
于 2012-08-21T15:56:54.640 に答える