私のサイトをChromeで実行したところ、驚いたことに、.png画像ごとに次の警告が表示されました。
Resource interpreted as image but transferred with MIME type application/octet-stream.
誰かこれを見たことがある?
よろしく
<staticContent>
設定を無視しているよう<system.webServer>
です。
私のサイトをChromeで実行したところ、驚いたことに、.png画像ごとに次の警告が表示されました。
Resource interpreted as image but transferred with MIME type application/octet-stream.
誰かこれを見たことがある?
よろしく
<staticContent>
設定を無視しているよう<system.webServer>
です。
回答:
ASP.NET開発サーバーを使用してASP.NET WebFormsアプリを実行しているときに、この問題が発生しました。
サーバーとしてIIS Expressも使用している場合(VS 2010 SP1)でも、同様のことが起こると思います。
(Webで)プロジェクト設定を編集してローカルで問題を「解決」し、ローカルマシンでASP.NET開発サーバーからIISに変更しました。PNGが既に画像のMIMEタイプとして正しく定義されていることがわかります。実際、ローカルのIISサーバーにアクセスすると、正しいタイプのファイルが提供されています。
この警告は、PNG画像の正しいMIMEタイプのメタデータを送信するようにWebサーバーが設定されていないことを示しています。Webサーバーの管理者に相談して、正しいMIMEマッピングを設定するように依頼する必要があります。
もちろん、上記のソリューションは完璧です。警告を避け、コンソールをクリーンにするために、コードを変更した後、次のようにしました。(これもASP.NET開発サーバーの場合のみ)このための追加のハンドラーを作成しました。
PNGHandler.cs
class PNGHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if(context.Request.HttpMethod == "GET")
{
string requestedFile = context.Server.MapPath(context.Request.FilePath);
FileInfo fileinfo = new FileInfo(requestedFile);
string contentType = "";
if (fileinfo.Exists && fileinfo.Extension.Remove(0, 1).ToUpper() == "PNG")
{
contentType = "image/png";
context.Response.ContentType = contentType;
context.Response.TransmitFile(requestedFile);
context.Response.End();
}
}
}
}
そして、system.webの下のweb.configにHttpハンドラを追加しました
<system.web>
<httpHandlers>
<add path="*.png" verb="*" type="PNGHandler" />
</httpHandlers>
</system.web>
I有効にすることによってこの問題を解決してきた静的コンテンツの中でコントロールパネル] > [ プログラムと機能 ]> [ Windowsの機能の有効化または無効化 ]> [ IISコンポーネント > のWorld Wide Webサービス ]> [ HTTP共通機能機能