Web標準普及プロジェクト

外部CSSファイルはStandardモード時に一部サーバで使用できません

MozillaのStandardモードでは仕様に対して厳密な処理が行われていますが、 このような処理の中にサーバ設定で発生してしまう問題があり、 多くの日本のサーバにおいてWebサイトの作者が変更できない問題が含まれているのでここで紹介します。

注意。ここで解説するContent-Typeの話はHTMLに記述するtype属性の値、例えば、

<link href="style.css" type="text/css">

のことではありません。ここでの話はあくまでサーバ設定の問題です。

CSSファイルはtext/cssでなくてはいけません

Standardモードでは外部CSSファイルを読み込む際にサーバから送られるHTTPヘッダのContent-Typeによってどのようなスタイルシート言語で記述されているのかを判断します。 これは将来、CSSに似たMozillaの知らないスタイルシート言語が登場した場合にも誤動作を行わないよう配慮された仕様です。

しかしその弊害として、*.cssファイルであってもtext/plain等、 text/css以外の値でContent-Typeを送信するサーバでは、 外部CSSファイルがHTML文書に反映されないという問題があります(つまり、スタイルシートが適用されません)。

HTTPヘッダはサーバの設定によって決まりますので、*.cssファイルを.htaccessファイルで Content-Type: text/cssを送信するように設定しておけば、この問題を解決できます。 しかし、この.htaccessファイルをWebサイト作者が使えないことも多いのが実情です。

Bugzilla-jpに報告された問題のあるサーバ

以下のサーバでの問題が報告されました。

サーバ名 状況 Bugzilla-jp
Yahoo!ジオシティーズ 対応していただけました(2002/09/11確認) Bug 2158
DION 対応していただけました(2002/09/07確認) Bug 2472
Kakaa Internet 対応していただけました(2003/02/08確認) Bug 1683
AIRnet 対応していただけました(2004/02/03確認) Bug 3494

解決するためには

.htaccessをあなたが修正できる場合、.htaccessをあなたのサイトのルートディレクトリに設置して、 AddType text/css .cssと記述します。

この設定変更ができない場合は、まずBugzilla-jpへ報告してください。 そして、そのサーバ業者の顧客であるあなたもサーバ業者に対して苦情を書いてください。 私たちからも連絡は行いますが、相手が企業の場合は(この問題に限らず)私たち第三者よりも自分たちの顧客の苦情なら修正してもらえるケースが多いからです。