なぜ公開されたウェブページに画像が表示されないのですか?
ウェブサーバーで画像の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