携帯電話ページでのContent-Type
携帯電話でXHTMLを使用する場合にはまったこと。
HTMLファイルには以下のように設定
index.html
<?xml version="1.0" encoding="SJIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=SJIS" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>title</title> </head> <body style="background-color: red;color:blue;"> Hellow World!! </body> </html>
この状態で表示したが、携帯電話でスタイルが適用されない。
スタイルが適用されているサイトと見比べた結果、適用されているサイトのレスポンスヘッダーのContent-Typeはapplication/xhtml+xml、自分のレスポンスヘッダーのContent-Typeはtext/htmlとなっていた。
よってApache HTTPDに AddTypeディレクティブ を追加
AddType application/xhtml+xml .html
特定のディレクトリ以下に設定する場合
<Directory "/usr/local/apache2/htdocs/mobile"> AddType application/xhtml+xml .html </Directory>
これでスタイルが適用されたHTMLが表示された。
AddTypeディレクティブはmod_mimeモジュールに含まれている。
以下のコマンドでmod_mimeが含まれているか確認できる。
/usr/local/apache2/bin/httpd -l | grep mod_mime mod_mime.c
mod_mime.cが表示されればAddTypeディレクティブを使用できる。