Presented by Nishishi via Movable Type. Last Updated: 2009/07/17. 22:57:43.

iモードシミュレータでlocalhostを表示させるとCSSが無効になる原因

携帯サイトをlocalhostで表示確認するときに困る

XHTMLで記述した携帯サイト用ページを、AN HTTPで動作させているウェブサーバで提供し、それを「i-modeシミュレータ」を使って表示させた場合、CSSが有効になりません。

これは、AN HTTPが(htmlファイルを表示させる際の)HTTPレスポンスヘッダに、無条件でファイルタイプ「text/html」を返しているのが原因です。

iモードシミュレータ(=docomoの携帯端末)は、XHTMLを使わないとCSSが有効になりません。しかし、XHTMLの文法を使ってページを記述したとしても、ウェブサーバが返すファイルタイプが「application/xhtml+xml」でないと、そもそもデータがXHTMLであるとしては認識してくれません。(※HTMLだと解釈されちゃいます。その場合、CSSは有効になりません。docomoでは。)

※ローカルのHTMLファイルを直接「iモードシミュレータ」に読み込ませて表示させた場合は問題ありません。ウェブサーバからページを得る際にだけ問題になります。

「text/html」を「application/xhtml+xml」に設定変更して解決

ウェブサーバがApacheの場合は、「.htaccessファイル」を使って指定拡張子(htmlなど)では「application/xhtml+xml」を返すよう書いておけば済みます。
しかし、AN HTTPの場合は、その方法は使えません。

AN HTTPの場合は、設定ダイアログで、拡張子「htm,html」に対してファイルタイプ「application/xhtml+xml」を返すよう設定すれば解決します。

設定場所は、「AN HTTP」のメニュー→「オプション一般」で表示される設定ダイアログ中にあります。設定ダイアログ中の「ファイルタイプ」タブの中で、先頭にある「htm,html」項目の設定値を変更します。(下図参照)

AN HTTPでhtmlファイルのファイルタイプを「application/xhtml+xml」に設定する

この日記へのコメントはお気軽に! コメント数:0 トラックバック数:0

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

投稿後、投稿できていないように見えることがあります。ブラウザのキャッシュが読まれているだけですので、ページを再読込すれば(=たいてい[F5]キーを押せば)投稿内容が反映されていることが確認できるはずです。連続投稿を試す前にご確認下さい。(^^;)

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)