なぜ公開されたウェブページに画像が表示されないのですか?

ウェブサーバーで画像のMIMEタイプが定義されていないため、公開されたウェブページから画像が欠落しています。

説明

公開されているHTMLページにIXIA CCMSの画像(.imageファイル)へのリンクや<img>タグが含まれていても、ブラウザで表示されません(壊れています)。Tomcatを除くほとんどのウェブサーバーは、デフォルトで未知または未定義のMIMEタイプを提供しないように設定されています。

解決法

IXIA CCMS画像のMIMEタイプを定義する必要があります。

Apacheの場合

サイトのメインページと同じレベルに.htaccessという分散設定ファイルを作成し、そこに以下の行を追加します¥:
AddType application/octet-stream .image

Tomcatの場合

デフォルトの動作として不明なMIMEタイプを提供することがオフになっている場合は、サイトのメインページと同じ階層にweb.xmlというファイルを作成し、次の行を追加します:
<?xml version="1.0"?>
<web-app> 
   <mime-mapping>  
      <extension>image</extension>    
    <mime-type>application/octet-stream</mime-type>  
  </mime-mapping>
</web-app>

IIS 7以上の場合

サイトのメインページと同じ階層にweb.configファイルを作成し、そこに以下を追加します:
<configuration>
	<system.webServer>
		<staticContent>
			<remove fileExtension=".image" />
			<mimeMap fileExtension=".image" mimeType="application/octet-stream" />
		</staticContent>
		<httpProtocol>
			<customHeaders>
				<remove name="X-Content-Type-Options" />
				<add name="X-Content-Type-Options" value="sniff" />
			</customHeaders>
		</httpProtocol>
	</system.webServer>
</configuration>

これにより、.image ファイル拡張子がオクテットストリーム MimeType に追加され、Chrome と Internet Explorer のブラウザが HTTP ヘッダで送信される MimeType をバイパスし、特に「nosniff」値がグローバルに有効になっている場合に、.image ファイルを表示するために使用する正しい MimeType を検出(「sniff」)できるようになります。

IIS 6の場合

以下を含むaddMIMEType.vbsファイルを作成し、cscript.exe addMIMEType.vbsを使用して実行します:


Dim MimeMapObj, MimeMapArray, MimeTypesToAddArray, WshShell, oExec, counter 
Const ADS_PROPERTY_UPDATE = 2 
 
' Set the MIME types to be added
MimeTypesToAddArray = Array(".image", "application/octet-stream")
 
' Get the mimemap object 
Set MimeMapObj = GetObject("IIS://LocalHost/MimeMap")
 
' Call AddMimeType for every pair of extension/MIME type
For counter = 0 to UBound(MimeTypesToAddArray) Step 2
    AddMimeType MimeTypesToAddArray(counter), MimeTypesToAddArray(counter+1)
Next
 
' Create a Shell object
Set WshShell = CreateObject("WScript.Shell")
 
' Stop and Start the IIS Service
Set oExec = WshShell.Exec("net stop w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop
 
Set oExec = WshShell.Exec("net start w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop
 
Set oExec = Nothing
 
' Report status to user
WScript.Echo "MIME types have been registered."
 
' AddMimeType Sub
Sub AddMimeType (Ext, MType)
    Dim i 
    ' Get the mappings from the MimeMap property. 
    MimeMapArray = MimeMapObj.GetEx("MimeMap") 
 
    ' Add a new mapping. 
    i = UBound(MimeMapArray) + 1 
    Redim Preserve MimeMapArray(i) 
    Set MimeMapArray(i) = CreateObject("MimeMap") 
    MimeMapArray(i).Extension = Ext 
    MimeMapArray(i).MimeType = MType 
    MimeMapObj.PutEx ADS_PROPERTY_UPDATE, "MimeMap", MimeMapArray
    MimeMapObj.SetInfo
    
End Sub